public class AdaBoostM1 extends RandomizableIteratedSingleClassifierEnhancer implements WeightedInstancesHandler, Sourcable, TechnicalInformationHandler, IterativeClassifier
@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.
| Modifier and Type | Field and Description |
|---|---|
protected double[] |
m_Betas
Array for storing the weights for the votes.
|
protected int |
m_NumClasses
The number of classes
|
protected int |
m_NumIterationsPerformed
The number of successfully generated base classifiers.
|
protected java.util.Random |
m_RandomInstance
Random number generator to be used for resampling
|
protected Instances |
m_TrainingData
The (weighted) training data
|
protected boolean |
m_UseResampling
Use boosting with reweighting?
|
protected int |
m_WeightThreshold
Weight Threshold.
|
protected Classifier |
m_ZeroR
a ZeroR model in case no model can be built from the data
|
m_Seedm_Classifiers, m_NumIterationsm_ClassifierBATCH_SIZE_DEFAULT, m_BatchSize, m_Debug, m_DoNotCheckCapabilities, m_numDecimalPlaces, NUM_DECIMAL_PLACES_DEFAULT| Constructor and Description |
|---|
AdaBoostM1()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
buildClassifier(Instances data)
Method used to build the classifier.
|
protected java.lang.String |
defaultClassifierString()
String describing default classifier.
|
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance.
|
void |
done()
Clean up after boosting.
|
Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier.
|
java.lang.String |
getRevision()
Returns the revision string.
|
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.
|
boolean |
getUseResampling()
Get whether resampling is turned on
|
int |
getWeightThreshold()
Get the degree of weight thresholding
|
java.lang.String |
globalInfo()
Returns a string describing classifier
|
void |
initializeClassifier(Instances data)
Initialize the classifier.
|
java.util.Enumeration<Option> |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(java.lang.String[] argv)
Main method for testing this class.
|
boolean |
next()
Perform the next boosting iteration.
|
protected Instances |
selectWeightQuantile(Instances data,
double quantile)
Select only instances with weights that contribute to the specified quantile of the weight
distribution
|
void |
setOptions(java.lang.String[] options)
Parses a given list of options.
|
void |
setUseResampling(boolean r)
Set resampling mode
|
protected void |
setWeights(Instances training,
double reweight)
Sets the weights for the next iteration.
|
void |
setWeightThreshold(int threshold)
Set weight threshold
|
java.lang.String |
toSource(java.lang.String className)
Returns the boosted model as Java source code.
|
java.lang.String |
toString()
Returns description of the boosted classifier.
|
java.lang.String |
useResamplingTipText()
Returns the tip text for this property
|
java.lang.String |
weightThresholdTipText()
Returns the tip text for this property
|
getSeed, seedTipText, setSeeddefaultNumberOfIterations, getNumIterations, numIterationsTipText, setNumIterationsclassifierTipText, defaultClassifierOptions, getClassifier, getClassifierSpec, postExecution, preExecution, setClassifierbatchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlacesclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitclassifyInstanceprotected double[] m_Betas
protected int m_NumIterationsPerformed
protected int m_WeightThreshold
protected boolean m_UseResampling
protected int m_NumClasses
protected Classifier m_ZeroR
protected Instances m_TrainingData
protected java.util.Random m_RandomInstance
public java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation in interface TechnicalInformationHandlerprotected java.lang.String defaultClassifierString()
defaultClassifierString in class SingleClassifierEnhancerprotected Instances selectWeightQuantile(Instances data, double quantile)
data - the input instancesquantile - the specified quantile eg 0.9 to select 90% of the weight masspublic java.util.Enumeration<Option> listOptions()
listOptions in interface OptionHandlerlistOptions in class RandomizableIteratedSingleClassifierEnhancerpublic void setOptions(java.lang.String[] options)
throws java.lang.Exception
-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.
setOptions in interface OptionHandlersetOptions in class RandomizableIteratedSingleClassifierEnhanceroptions - the list of options as an array of stringsjava.lang.Exception - if an option is not supportedpublic java.lang.String[] getOptions()
getOptions in interface OptionHandlergetOptions in class RandomizableIteratedSingleClassifierEnhancerpublic java.lang.String weightThresholdTipText()
public void setWeightThreshold(int threshold)
threshold - the percentage of weight mass used for trainingpublic int getWeightThreshold()
public java.lang.String useResamplingTipText()
public void setUseResampling(boolean r)
r - true if resampling should be donepublic boolean getUseResampling()
public Capabilities getCapabilities()
getCapabilities in interface ClassifiergetCapabilities in interface CapabilitiesHandlergetCapabilities in class SingleClassifierEnhancerCapabilitiespublic void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier in interface ClassifierbuildClassifier in class IteratedSingleClassifierEnhancerdata - the training data to be used for generating the
bagged classifier.java.lang.Exception - if the classifier could not be built successfullypublic void initializeClassifier(Instances data) throws java.lang.Exception
initializeClassifier in interface IterativeClassifierdata - the training data to be used for generating the boosted classifier.java.lang.Exception - if the classifier could not be built successfullypublic boolean next()
throws java.lang.Exception
next in interface IterativeClassifierjava.lang.Exception - if an unforeseen problem occurspublic void done()
done in interface IterativeClassifierprotected void setWeights(Instances training, double reweight) throws java.lang.Exception
training - the training instancesreweight - the reweighting factorjava.lang.Exception - if something goes wrongpublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance in interface ClassifierdistributionForInstance in class AbstractClassifierinstance - the instance to be classifiedjava.lang.Exception - if instance could not be classified successfullypublic java.lang.String toSource(java.lang.String className)
throws java.lang.Exception
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String getRevision()
getRevision in interface RevisionHandlergetRevision in class AbstractClassifierpublic static void main(java.lang.String[] argv)
argv - the options