Package weka.classifiers.meta
Class AdaBoostM1
- All Implemented Interfaces:
Serializable
,Cloneable
,Classifier
,IterativeClassifier
,Sourcable
,BatchPredictor
,CapabilitiesHandler
,CapabilitiesIgnorer
,CommandlineRunnable
,OptionHandler
,Randomizable
,RevisionHandler
,TechnicalInformationHandler
,WeightedInstancesHandler
public class AdaBoostM1
extends RandomizableIteratedSingleClassifierEnhancer
implements WeightedInstancesHandler, Sourcable, TechnicalInformationHandler, IterativeClassifier
Class for boosting a nominal class classifier using
the Adaboost M1 method. Only nominal class problems can be tackled. Often
dramatically improves performance, but sometimes overfits.
For more information, see
Yoav Freund, Robert E. Schapire: Experiments with a new boosting algorithm. In: Thirteenth International Conference on Machine Learning, San Francisco, 148-156, 1996. BibTeX:
For more information, see
Yoav Freund, Robert E. Schapire: Experiments with a new boosting algorithm. In: Thirteenth International Conference on Machine Learning, San Francisco, 148-156, 1996. BibTeX:
@inproceedings{Freund1996, address = {San Francisco}, author = {Yoav Freund and Robert E. Schapire}, booktitle = {Thirteenth International Conference on Machine Learning}, pages = {148-156}, publisher = {Morgan Kaufmann}, title = {Experiments with a new boosting algorithm}, year = {1996} }Valid options are:
-P <num> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-Q Use resampling for boosting.
-S <num> Random number seed. (default 1)
-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 consoleOptions after -- are passed to the designated classifier.
- Version:
- $Revision: 15519 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
- See Also:
-
Field Summary
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
buildClassifier
(Instances data) Method used to build the classifier.double[]
distributionForInstance
(Instance instance) Calculates the class membership probabilities for the given test instance.void
done()
Clean up after boosting.Returns default capabilities of the classifier.String[]
Gets the current settings of the Classifier.boolean
Returns true if the model is to be finalized (or has been finalized) after training.Returns the revision string.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.boolean
Get whether resampling is turned onint
Get the degree of weight thresholdingReturns a string describing classifiervoid
Initialize the classifier.Returns an enumeration describing the available options.static void
Main method for testing this class.boolean
next()
Perform the next boosting iteration.Tool tip text for the resume propertyvoid
setOptions
(String[] options) Parses a given list of options.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 performedvoid
setUseResampling
(boolean r) Set resampling modevoid
setWeightThreshold
(int threshold) Set weight thresholdReturns the boosted model as Java source code.toString()
Returns description of the boosted classifier.Returns the tip text for this propertyReturns the tip text for this propertyMethods inherited from class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
getSeed, seedTipText, setSeed
Methods inherited from class weka.classifiers.IteratedSingleClassifierEnhancer
getNumIterations, numIterationsTipText, setNumIterations
Methods inherited from class weka.classifiers.SingleClassifierEnhancer
classifierTipText, getClassifier, postExecution, preExecution, setClassifier
Methods inherited from class weka.classifiers.AbstractClassifier
batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface weka.classifiers.Classifier
classifyInstance
-
Constructor Details
-
AdaBoostM1
public AdaBoostM1()Constructor.
-
-
Method Details
-
globalInfo
Returns a string describing classifier- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
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
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classRandomizableIteratedSingleClassifierEnhancer
- Returns:
- an enumeration of all the available options.
-
setOptions
Parses a given list of options. Valid options are:-P <num> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-Q Use resampling for boosting.
-S <num> Random number seed. (default 1)
-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
Options after -- are passed to the designated classifier.- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classRandomizableIteratedSingleClassifierEnhancer
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getOptions
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classRandomizableIteratedSingleClassifierEnhancer
- Returns:
- an array of strings suitable for passing to setOptions
-
weightThresholdTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setWeightThreshold
public void setWeightThreshold(int threshold) Set weight threshold- Parameters:
threshold
- the percentage of weight mass used for training
-
getWeightThreshold
public int getWeightThreshold()Get the degree of weight thresholding- Returns:
- the percentage of weight mass used for training
-
useResamplingTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setUseResampling
public void setUseResampling(boolean r) Set resampling mode- Parameters:
r
- true if resampling should be done
-
getUseResampling
public boolean getUseResampling()Get whether resampling is turned on- Returns:
- true if resampling output is on
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Overrides:
getCapabilities
in classSingleClassifierEnhancer
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Method used to build the classifier.- Specified by:
buildClassifier
in interfaceClassifier
- Overrides:
buildClassifier
in classIteratedSingleClassifierEnhancer
- Parameters:
data
- the training data to be used for generating the bagged classifier.- Throws:
Exception
- if the classifier could not be built successfully
-
initializeClassifier
Initialize the classifier.- Specified by:
initializeClassifier
in interfaceIterativeClassifier
- Parameters:
data
- the training data to be used for generating the boosted classifier.- Throws:
Exception
- if the classifier could not be built successfully
-
next
Perform the next boosting iteration.- Specified by:
next
in interfaceIterativeClassifier
- Returns:
- false if no further iterations could be performed, true otherwise
- Throws:
Exception
- if an unforeseen problem occurs
-
done
public void done()Clean up after boosting.- Specified by:
done
in interfaceIterativeClassifier
-
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 interfaceIterativeClassifier
- 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 interfaceIterativeClassifier
- Returns:
- the current value of finalize
-
distributionForInstance
Calculates the class membership probabilities for the given test instance.- Specified by:
distributionForInstance
in interfaceClassifier
- Overrides:
distributionForInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- predicted class probability distribution
- Throws:
Exception
- if instance could not be classified successfully
-
toSource
Returns the boosted model as Java source code. -
toString
Returns description of the boosted classifier. -
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClassifier
- Returns:
- the revision
-
main
Main method for testing this class.- Parameters:
argv
- the options
-