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:
java.io.Serializable
,java.lang.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 classifierAdditiveRegression(Classifier classifier)
Constructor which takes base classifier as argument.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildClassifier(Instances data)
Build the classifier on the supplied datadouble
classifyInstance(Instance inst)
Classify an instance.java.util.Enumeration
enumerateMeasures()
Returns an enumeration of the additional measure namesCapabilities
getCapabilities()
Returns default capabilities of the classifier.double
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measurejava.lang.String[]
getOptions()
Gets the current settings of the Classifier.java.lang.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.java.lang.String
globalInfo()
Returns a string describing this attribute evaluatorjava.util.Enumeration
listOptions()
Returns an enumeration describing the available options.static void
main(java.lang.String[] argv)
Main method for testing this class.double
measureNumIterations()
return the number of iterations (base classifiers) completedvoid
setOptions(java.lang.String[] options)
Parses a given list of options.void
setShrinkage(double l)
Set the shrinkage parameterjava.lang.String
shrinkageTipText()
Returns the tip text for this propertyjava.lang.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
-
-
-
-
Constructor Detail
-
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 Detail
-
globalInfo
public java.lang.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 interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classIteratedSingleClassifierEnhancer
- Returns:
- an enumeration of all the available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.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 interfaceOptionHandler
- Overrides:
setOptions
in classIteratedSingleClassifierEnhancer
- Parameters:
options
- the list of options as an array of strings- Throws:
java.lang.Exception
- if an option is not supported
-
getOptions
public java.lang.String[] getOptions()
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classIteratedSingleClassifierEnhancer
- Returns:
- an array of strings suitable for passing to setOptions
-
shrinkageTipText
public java.lang.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 interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classSingleClassifierEnhancer
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws java.lang.Exception
Build the classifier on the supplied data- Overrides:
buildClassifier
in classIteratedSingleClassifierEnhancer
- Parameters:
data
- the training data- Throws:
java.lang.Exception
- if the classifier could not be built successfully
-
classifyInstance
public double classifyInstance(Instance inst) throws java.lang.Exception
Classify an instance.- Overrides:
classifyInstance
in classClassifier
- Parameters:
inst
- the instance to predict- Returns:
- a prediction for the instance
- Throws:
java.lang.Exception
- if an error occurs
-
enumerateMeasures
public java.util.Enumeration enumerateMeasures()
Returns an enumeration of the additional measure names- Specified by:
enumerateMeasures
in interfaceAdditionalMeasureProducer
- Returns:
- an enumeration of the measure names
-
getMeasure
public double getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measure- Specified by:
getMeasure
in interfaceAdditionalMeasureProducer
- Parameters:
additionalMeasureName
- the name of the measure to query for its value- Returns:
- the value of the named measure
- Throws:
java.lang.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 java.lang.String toString()
Returns textual description of the classifier.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a description of the classifier as a string
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class.- Parameters:
argv
- should contain the following arguments: -t training file [-T test file] [-c class index]
-
-