Package weka.classifiers.meta

# Class AdditiveRegression

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.IteratedSingleClassifierEnhancer
weka.classifiers.meta.AdditiveRegression

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `AdditionalMeasureProducer`, `CapabilitiesHandler`, `OptionHandler`, `RevisionHandler`, `TechnicalInformationHandler`, `WeightedInstancesHandler`

public class AdditiveRegression extends IteratedSingleClassifierEnhancer implements OptionHandler, AdditionalMeasureProducer, WeightedInstancesHandler, TechnicalInformationHandler
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)

     -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: 1.25 $
Author:
  Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`AdditiveRegression()`
Default constructor specifying DecisionStump as the classifier
`AdditiveRegression(Classifier classifier)`
Constructor which takes base classifier as argument.

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances data)`
Build the classifier on the supplied data
`double`
`classifyInstance(Instance inst)`
Classify an instance.
`Enumeration`
`enumerateMeasures()`
Returns an enumeration of the additional measure names
`Capabilities`
`getCapabilities()`
Returns default capabilities of the classifier.
`double`
`getMeasure(String additionalMeasureName)`
Returns the value of the named measure
`String[]`
`getOptions()`
Gets the current settings of the Classifier.
`String`
`getRevision()`
Returns the revision string.
`double`
`getShrinkage()`
Get the shrinkage rate.
`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.
`String`
`globalInfo()`
Returns a string describing this attribute evaluator
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`static void`
`main(String[] argv)`
Main method for testing this class.
`double`
`measureNumIterations()`
return the number of iterations (base classifiers) completed
`void`
`setOptions(String[] options)`
Parses a given list of options.
`void`
`setShrinkage(double l)`
Set the shrinkage parameter
`String`
`shrinkageTipText()`
Returns the tip text for this property
`String`
`toString()`
Returns textual description of the classifier.

### Methods inherited from class weka.classifiers.IteratedSingleClassifierEnhancer

`getNumIterations, numIterationsTipText, setNumIterations`

### Methods inherited from class weka.classifiers.SingleClassifierEnhancer

`classifierTipText, getClassifier, setClassifier`

### Methods inherited from class weka.classifiers.Classifier

`debugTipText, distributionForInstance, forName, getDebug, makeCopies, makeCopy, setDebug`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## 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 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)

     -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

### getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
  `getCapabilities` in interface `CapabilitiesHandler`
Overrides:
  `getCapabilities` in class `SingleClassifierEnhancer`
Returns:
  the capabilities of this classifier
See Also:
  - `Capabilities`

### buildClassifier

public void buildClassifier(Instances data) throws Exception
Build the classifier on the supplied data

Overrides:
  `buildClassifier` in class `IteratedSingleClassifierEnhancer`
Parameters:
  `data` - the training data
Throws:
  `Exception` - if the classifier could not be built successfully

### classifyInstance

public double classifyInstance(Instance inst) throws Exception
Classify an instance.

Overrides:
  `classifyInstance` in class `Classifier`
Parameters:
  `inst` - the instance to predict
Returns:
  a prediction for the instance
Throws:
  `Exception` - if an error occurs

### enumerateMeasures

public Enumeration 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 `Classifier`
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]