com.rapidminer.operator.learner.weka
Class GenericWekaMetaLearner

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.OperatorChain
          extended by com.rapidminer.operator.learner.weka.GenericWekaMetaLearner
All Implemented Interfaces:
ConfigurationListener, PreviewListener, Learner, ParameterHandler, LoggingHandler, weka.core.TechnicalInformationHandler

public class GenericWekaMetaLearner
extends OperatorChain
implements Learner, weka.core.TechnicalInformationHandler

Performs the meta learning scheme of Weka with the same name. Another non-meta learning scheme of Weka must be embedded as inner operator. See the Weka javadoc for further classifier and parameter descriptions.

Author:
Ingo Mierswa ingomierswa Exp $

Field Summary
static java.lang.String[] WEKA_CLASSIFIERS
           
 
Constructor Summary
GenericWekaMetaLearner(OperatorDescription description)
           
 
Method Summary
 IOObject[] apply()
          Applies all inner operators.
 PerformanceVector getEstimatedPerformance()
          Returns the estimated performance.
 InnerOperatorCondition getInnerOperatorCondition()
          Returns a simple chain condition.
 java.lang.Class<?>[] getInputClasses()
          Returns the classes that are needed as input.
 InputDescription getInputDescription(java.lang.Class cls)
          Indicates that the consumption of example sets can be user defined.
 int getMaxNumberOfInnerOperators()
          Returns the maximum number of inner operators.
 int getMinNumberOfInnerOperators()
          Returns the minimum number of inner operators.
 java.lang.Class<?>[] getOutputClasses()
          Returns the classes that are guaranteed to be returned by apply() as additional output.
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
 weka.core.TechnicalInformation getTechnicalInformation()
           
 AttributeWeights getWeights(ExampleSet exampleSet)
          Returns the calculated weight vectors.
 java.lang.String getWekaClassPath()
          This method is used by the GenericWekaMetaLearner to specify the learners name.
 java.util.List getWekaParameterList()
          This method is used by the GenericWekaMetaLearner to specify the learners parameters.
 Model learn(ExampleSet exampleSet)
          Trains a model.
 boolean onlyWarnForNonSufficientCapabilities()
          Returns true.
 void performAdditionalChecks()
          This method invokes the additional check method for each child.
 boolean shouldCalculateWeights()
          Returns true if the user wants to calculate feature weights (depending on a parameter).
 boolean shouldEstimatePerformance()
          Returns true if the user wants to estimate the performance (depending on a parameter).
 boolean supportsCapability(LearnerCapability capability)
          Checks for Learner capabilities.
 
Methods inherited from class com.rapidminer.operator.OperatorChain
addAddListener, addOperator, addOperator, checkDeprecations, checkIO, checkNumberOfInnerOperators, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createProcessTree, getAllInnerOperators, getIndexOfOperator, getInnerOperatorForName, getInnerOperatorsXML, getNumberOfAllOperators, getNumberOfOperators, getOperator, getOperatorFromAll, getOperators, processFinished, processStarts, registerOperator, removeAddListener, removeOperator, shouldAddNonConsumedInput, shouldReturnInnerOutput, unregisterOperator
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkForStop, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInput, getInput, getInput, getIOContainerForInApplyLoopBreakpoint, getIODescription, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, register, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.rapidminer.operator.learner.Learner
getName
 

Field Detail

WEKA_CLASSIFIERS

public static final java.lang.String[] WEKA_CLASSIFIERS
Constructor Detail

GenericWekaMetaLearner

public GenericWekaMetaLearner(OperatorDescription description)
Method Detail

apply

public IOObject[] apply()
                 throws OperatorException
Description copied from class: OperatorChain
Applies all inner operators. The input to this operator becomes the input of the first inner operator. The latter's output is passed to the second inner operator and so on. Note to subclassers: If subclasses (for example wrappers) want to make use of this method remember to call exactly this method (super.apply()) and do not call super.apply(IOContainer) erroneously which will result in an infinite loop.

Overrides:
apply in class OperatorChain
Returns:
the last inner operator's output or the input itself if the chain is empty.
Throws:
OperatorException

learn

public Model learn(ExampleSet exampleSet)
            throws OperatorException
Description copied from interface: Learner
Trains a model. This method should be called by apply() and is implemented by subclasses.

Specified by:
learn in interface Learner
Throws:
OperatorException

getWekaClassPath

public java.lang.String getWekaClassPath()
This method is used by the GenericWekaMetaLearner to specify the learners name.


getWekaParameterList

public java.util.List getWekaParameterList()
This method is used by the GenericWekaMetaLearner to specify the learners parameters.


getTechnicalInformation

public weka.core.TechnicalInformation getTechnicalInformation()
Specified by:
getTechnicalInformation in interface weka.core.TechnicalInformationHandler

onlyWarnForNonSufficientCapabilities

public boolean onlyWarnForNonSufficientCapabilities()
Returns true.


supportsCapability

public boolean supportsCapability(LearnerCapability capability)
Description copied from interface: Learner
Checks for Learner capabilities. Should return true if the given capability is supported.

Specified by:
supportsCapability in interface Learner

shouldEstimatePerformance

public boolean shouldEstimatePerformance()
Returns true if the user wants to estimate the performance (depending on a parameter). In this case the method getEstimatedPerformance() must also be overriden and deliver the estimated performance. The default implementation returns false.

Specified by:
shouldEstimatePerformance in interface Learner

shouldCalculateWeights

public boolean shouldCalculateWeights()
Returns true if the user wants to calculate feature weights (depending on a parameter). In this case the method getWeights() must also be overriden and deliver the calculated weights. The default implementation returns false.

Specified by:
shouldCalculateWeights in interface Learner

getEstimatedPerformance

public PerformanceVector getEstimatedPerformance()
                                          throws OperatorException
Returns the estimated performance. Subclasses which supports the capability to estimate learning performance must override this method. The default implementation throws an exception.

Specified by:
getEstimatedPerformance in interface Learner
Throws:
OperatorException

getWeights

public AttributeWeights getWeights(ExampleSet exampleSet)
                            throws OperatorException
Returns the calculated weight vectors. Subclasses which supports the capability to calculate feature weights must override this method. The default implementation throws an exception.

Specified by:
getWeights in interface Learner
Throws:
OperatorException

getInputDescription

public InputDescription getInputDescription(java.lang.Class cls)
Indicates that the consumption of example sets can be user defined.

Overrides:
getInputDescription in class Operator

getMinNumberOfInnerOperators

public int getMinNumberOfInnerOperators()
Description copied from class: OperatorChain
Returns the minimum number of inner operators.

Specified by:
getMinNumberOfInnerOperators in class OperatorChain

getMaxNumberOfInnerOperators

public int getMaxNumberOfInnerOperators()
Description copied from class: OperatorChain
Returns the maximum number of inner operators.

Specified by:
getMaxNumberOfInnerOperators in class OperatorChain

getOutputClasses

public java.lang.Class<?>[] getOutputClasses()
Description copied from class: Operator

Returns the classes that are guaranteed to be returned by apply() as additional output. Please note that input objects which should not be consumed must also be defined by this method (e.g. an example set which is changed but not consumed in the case of a preprocessing operator must be defined in both, the methods Operator.getInputClasses() and Operator.getOutputClasses()). The default behavior for input consumation is defined by Operator.getInputDescription(Class) and can be changed by overwriting this method. Objects which are not consumed (defined by changing the implementation in Operator.getInputDescription(Class)) must not be defined as additional output in this method.

May deliver null or an empy array (no additional output is produced or guaranteed). Must return the class array of delivered output objects otherwise.

Specified by:
getOutputClasses in class Operator

getInputClasses

public java.lang.Class<?>[] getInputClasses()
Description copied from class: Operator
Returns the classes that are needed as input. May be null or an empty (no desired input). As default, all delivered input objects are consumed and must be also delivered as output in both Operator.getOutputClasses() and Operator.apply() if this is necessary. This default behavior can be changed by overriding Operator.getInputDescription(Class). Subclasses which implement this method should not make use of parameters since this method is invoked by getParameterTypes(). Therefore, parameters are not fully available at this point of time and this might lead to exceptions. Please use InputDescriptions instead.

Specified by:
getInputClasses in class Operator

getInnerOperatorCondition

public InnerOperatorCondition getInnerOperatorCondition()
Returns a simple chain condition.

Specified by:
getInnerOperatorCondition in class OperatorChain

performAdditionalChecks

public void performAdditionalChecks()
                             throws UserError
Description copied from class: OperatorChain
This method invokes the additional check method for each child. Subclasses which override this method to perform a check should also invoke super.performAdditionalChecks()!

Overrides:
performAdditionalChecks in class OperatorChain
Throws:
UserError

getParameterTypes

public java.util.List<ParameterType> getParameterTypes()
Description copied from class: Operator
Returns a list of ParameterTypes describing the parameters of this operator. The default implementation returns an empty list if no input objects can be retained and special parameters for those input objects which can be prevented from being consumed.

Specified by:
getParameterTypes in interface ParameterHandler
Overrides:
getParameterTypes in class Operator


Copyright © 2001-2009 by Rapid-I