com.rapidminer.operator.learner
Class AbstractLearner

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.learner.AbstractLearner
All Implemented Interfaces:
ConfigurationListener, PreviewListener, Learner, ParameterHandler, LoggingHandler
Direct Known Subclasses:
AbstractMySVMLearner, AbstractTreeLearner, AttributeBasedVotingLearner, BestRuleInduction, DefaultLearner, EvoSVM, FastLargeMargin, GenericWekaLearner, GPLearner, HyperHyper, ImprovedNeuralNetLearner, IteratingGSS, KernelLogisticRegression, KernelNaiveBayes, KNNLearner, LibSVMLearner, LinearDiscriminantAnalysis, LinearRegression, LogisticRegression, MultiCriterionDecisionStumps, NaiveBayes, NeuralNetLearner, Perceptron, PolynomialRegression, PSOSVM, RandomForestLearner, RuleLearner, RVMLearner, SimpleNeuralNetLearner, SimpleRuleLearner, SingleRuleLearner, SubgroupDiscovery, VectorLinearRegression

public abstract class AbstractLearner
extends Operator
implements Learner

A Learner is an operator that encapsulates the learning step of a machine learning method. New learning schemes should extend this class to support the same parameters as other RapidMiner learners. The main purpose of this class is to perform some compatibility checks.

Author:
Ingo Mierswa

Field Summary
static java.lang.String PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN
          The property name for "Indicates if only a warning should be made if learning capabilities are not fulfilled (instead of breaking the process).
 
Constructor Summary
AbstractLearner(OperatorDescription description)
          Creates a new abstract learner.
 
Method Summary
 IOObject[] apply()
          Trains a model using an ExampleSet from the input.
 PerformanceVector getEstimatedPerformance()
          Returns the estimated performance.
 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.
 PerformanceVector getOptimizationPerformance()
          Returns the resulting performance of the original optimization problem.
 java.lang.Class<?>[] getOutputClasses()
          Returns the classes that are guaranteed to be returned by apply() as additional output.
 AttributeWeights getWeights(ExampleSet exampleSet)
          Returns the calculated weight vectors.
 boolean onlyWarnForNonSufficientCapabilities()
          Returns true.
 boolean shouldCalculateWeights()
          Returns true if the user wants to calculate feature weights (depending on a parameter).
 boolean shouldDeliverOptimizationPerformance()
          Returns true it the user wants to deliver the performance of the original optimization problem.
 boolean shouldEstimatePerformance()
          Returns true if the user wants to estimate the performance (depending on a parameter).
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkForStop, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getIOContainerForInApplyLoopBreakpoint, getIODescription, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParameterTypes, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, performAdditionalChecks, processFinished, processStarts, register, registerOperator, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, unregisterOperator, 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, learn, supportsCapability
 

Field Detail

PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN

public static final java.lang.String PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN
The property name for "Indicates if only a warning should be made if learning capabilities are not fulfilled (instead of breaking the process)."

See Also:
Constant Field Values
Constructor Detail

AbstractLearner

public AbstractLearner(OperatorDescription description)
Creates a new abstract learner.

Method Detail

apply

public IOObject[] apply()
                 throws OperatorException
Trains a model using an ExampleSet from the input. Uses the method learn(ExampleSet).

Specified by:
apply in class Operator
Throws:
OperatorException

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

shouldDeliverOptimizationPerformance

public boolean shouldDeliverOptimizationPerformance()
Returns true it the user wants to deliver the performance of the original optimization problem. Since many learners are basically optimization procedures for a certain type of objective function the result of this procedure might also be of interest in some cases.


getEstimatedPerformance

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

Specified by:
getEstimatedPerformance in interface Learner
Throws:
OperatorException

getOptimizationPerformance

public PerformanceVector getOptimizationPerformance()
                                             throws OperatorException
Returns the resulting performance of the original optimization problem. Subclasses which supports the capability to deliver this performance must override this method. The default implementation throws an exception.

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

onlyWarnForNonSufficientCapabilities

public boolean onlyWarnForNonSufficientCapabilities()
Returns true.


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

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


Copyright © 2001-2009 by Rapid-I