Class AdditiveRegression

All Implemented Interfaces:
Serializable, Cloneable, Classifier, IterativeClassifier, AdditionalMeasureProducer, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

Meta classifier that enhances the performance of a regression base classifier. Each iteration fits a model to the residuals left by the classifier on the previous iteration. Prediction is accomplished by adding the predictions of each classifier. Reducing the shrinkage (learning rate) parameter helps prevent overfitting and has a smoothing effect but increases the learning time.

For more information see:

J.H. Friedman (1999). Stochastic Gradient Boosting.

BibTeX:

 @techreport{Friedman1999,
    author = {J.H. Friedman},
    institution = {Stanford University},
    title = {Stochastic Gradient Boosting},
    year = {1999},
    PS = {http://www-stat.stanford.edu/\~jhf/ftp/stobst.ps}
 }
 

Valid options are:

 -S
  Specify shrinkage rate. (default = 1.0, ie. no shrinkage)
 
 -I <num>
  Number of iterations.
  (default 10)
 -A
  Minimize absolute error instead of squared error (assumes that base learner minimizes absolute error).
 
 
 -D
  If set, classifier is run in debug mode and
  may output additional info to the console
 -W
  Full name of base classifier.
  (default: weka.classifiers.trees.DecisionStump)
 
 Options specific to classifier weka.classifiers.trees.DecisionStump:
 
 -D
  If set, classifier is run in debug mode and
  may output additional info to the console
Version:
$Revision: 15519 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • AdditiveRegression

      public AdditiveRegression()
      Default constructor specifying DecisionStump as the classifier
    • AdditiveRegression

      public AdditiveRegression(Classifier classifier)
      Constructor which takes base classifier as argument.
      Parameters:
      classifier - the base classifier to use
  • Method Details

    • globalInfo

      public String globalInfo()
      Returns a string describing this attribute evaluator
      Returns:
      a description of the evaluator suitable for displaying in the explorer/experimenter gui
    • getTechnicalInformation

      public TechnicalInformation getTechnicalInformation()
      Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
      Specified by:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class IteratedSingleClassifierEnhancer
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -S
        Specify shrinkage rate. (default = 1.0, ie. no shrinkage)
       
       -I <num>
        Number of iterations.
        (default 10)
       -A
        Minimize absolute error instead of squared error (assumes that base learner minimizes absolute error).
        
       
       -D
        If set, classifier is run in debug mode and
        may output additional info to the console
       -W
        Full name of base classifier.
        (default: weka.classifiers.trees.DecisionStump)
       
       Options specific to classifier weka.classifiers.trees.DecisionStump:
       
       -D
        If set, classifier is run in debug mode and
        may output additional info to the console
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class IteratedSingleClassifierEnhancer
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the Classifier.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class IteratedSingleClassifierEnhancer
      Returns:
      an array of strings suitable for passing to setOptions
    • shrinkageTipText

      public String shrinkageTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setShrinkage

      public void setShrinkage(double l)
      Set the shrinkage parameter
      Parameters:
      l - the shrinkage rate.
    • getShrinkage

      public double getShrinkage()
      Get the shrinkage rate.
      Returns:
      the value of the learning rate
    • minimizeAbsoluteErrorTipText

      public String minimizeAbsoluteErrorTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setMinimizeAbsoluteError

      public void setMinimizeAbsoluteError(boolean f)
      Sets whether absolute error is to be minimized.
      Parameters:
      f - true if absolute error is to be minimized.
    • getMinimizeAbsoluteError

      public boolean getMinimizeAbsoluteError()
      Gets whether absolute error is to be minimized.
      Returns:
      true if absolute error is to be minimized
    • resumeTipText

      public String resumeTipText()
      Tool tip text for the resume property
      Returns:
      the tool tip text for the finalize property
    • setResume

      public void setResume(boolean resume)
      If called with argument true, then the next time done() is called the model is effectively "frozen" and no further iterations can be performed
      Specified by:
      setResume in interface IterativeClassifier
      Parameters:
      resume - true if the model is to be finalized after performing iterations
    • getResume

      public boolean getResume()
      Returns true if the model is to be finalized (or has been finalized) after training.
      Specified by:
      getResume in interface IterativeClassifier
      Returns:
      the current value of finalize
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class SingleClassifierEnhancer
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Method used to build the classifier.
      Specified by:
      buildClassifier in interface Classifier
      Overrides:
      buildClassifier in class IteratedSingleClassifierEnhancer
      Parameters:
      data - the training data to be used for generating the bagged classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • initializeClassifier

      public void initializeClassifier(Instances data) throws Exception
      Initialize classifier.
      Specified by:
      initializeClassifier in interface IterativeClassifier
      Parameters:
      data - the training data
      Throws:
      Exception - if the classifier could not be initialized successfully
    • next

      public boolean next() throws Exception
      Perform another iteration.
      Specified by:
      next in interface IterativeClassifier
      Returns:
      false if no further iterations could be performed, true otherwise
      Throws:
      Exception - if this iteration fails for unexpected reasons
    • done

      public void done()
      Clean up.
      Specified by:
      done in interface IterativeClassifier
    • classifyInstance

      public double classifyInstance(Instance inst) throws Exception
      Classify an instance.
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      inst - the instance to predict
      Returns:
      a prediction for the instance
      Throws:
      Exception - if an error occurs
    • enumerateMeasures

      public Enumeration<String> enumerateMeasures()
      Returns an enumeration of the additional measure names
      Specified by:
      enumerateMeasures in interface AdditionalMeasureProducer
      Returns:
      an enumeration of the measure names
    • getMeasure

      public double getMeasure(String additionalMeasureName)
      Returns the value of the named measure
      Specified by:
      getMeasure in interface AdditionalMeasureProducer
      Parameters:
      additionalMeasureName - the name of the measure to query for its value
      Returns:
      the value of the named measure
      Throws:
      IllegalArgumentException - if the named measure is not supported
    • measureNumIterations

      public double measureNumIterations()
      return the number of iterations (base classifiers) completed
      Returns:
      the number of iterations (same as number of base classifier models)
    • toString

      public String toString()
      Returns textual description of the classifier.
      Overrides:
      toString in class Object
      Returns:
      a description of the classifier as a string
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClassifier
      Returns:
      the revision
    • main

      public static void main(String[] argv)
      Main method for testing this class.
      Parameters:
      argv - should contain the following arguments: -t training file [-T test file] [-c class index]