|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--weka.classifiers.Classifier | +--weka.classifiers.DistributionClassifier | +--weka.classifiers.AdaBoostM1
Class for boosting a classifier using Freund & Schapire's Adaboost M1 method. For more information, see
Yoav Freund and Robert E. Schapire (1996). Experiments with a new boosting algorithm. Proc International Conference on Machine Learning, pages 148-156, Morgan Kaufmann, San Francisco.
Valid options are:
-D
Turn on debugging output.
-W classname
Specify the full class name of a classifier as the basis for
boosting (required).
-I num
Set the number of boost iterations (default 10).
-P num
Set the percentage of weight mass used to build classifiers
(default 100).
-Q
Use resampling instead of reweighting.
-S seed
Random number seed for resampling (default 1).
Options after -- are passed to the designated classifier.
Field Summary | |
protected double[] |
m_Betas
Array for storing the weights for the votes. |
protected Classifier |
m_Classifier
The model base classifier to use |
protected Classifier[] |
m_Classifiers
Array for storing the generated base classifiers. |
protected boolean |
m_Debug
Debugging mode, gives extra output if true |
protected int |
m_MaxIterations
The maximum number of boost iterations |
protected int |
m_NumClasses
The number of classes |
protected int |
m_NumIterations
The number of successfully generated base classifiers. |
protected int |
m_Seed
Seed for boosting with resampling. |
protected boolean |
m_UseResampling
Use boosting with reweighting? |
protected int |
m_WeightThreshold
Weight Threshold. |
Constructor Summary | |
AdaBoostM1()
|
Method Summary | |
void |
buildClassifier(Instances data)
Boosting method. |
protected void |
buildClassifierUsingResampling(Instances data)
Boosting method. |
protected void |
buildClassifierWithWeights(Instances data)
Boosting method. |
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
Classifier |
getClassifier()
Get the classifier used as the classifier |
boolean |
getDebug()
Get whether debugging is turned on |
int |
getMaxIterations()
Get the maximum number of boost iterations |
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier. |
int |
getSeed()
Get seed for resampling. |
boolean |
getUseResampling()
Get whether resampling is turned on |
int |
getWeightThreshold()
Get the degree of weight thresholding |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
protected Instances |
selectWeightQuantile(Instances data,
double quantile)
Select only instances with weights that contribute to the specified quantile of the weight distribution |
void |
setClassifier(Classifier newClassifier)
Set the classifier for boosting. |
void |
setDebug(boolean debug)
Set debugging mode |
void |
setMaxIterations(int maxIterations)
Set the maximum number of boost iterations |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setSeed(int seed)
Set seed for resampling. |
void |
setUseResampling(boolean r)
Set resampling mode |
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. |
Methods inherited from class weka.classifiers.DistributionClassifier |
classifyInstance |
Methods inherited from class weka.classifiers.Classifier |
forName, makeCopies |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Classifier m_Classifier
protected Classifier[] m_Classifiers
protected double[] m_Betas
protected int m_MaxIterations
protected int m_NumIterations
protected int m_WeightThreshold
protected boolean m_Debug
protected boolean m_UseResampling
protected int m_Seed
protected int m_NumClasses
Constructor Detail |
public AdaBoostM1()
Method Detail |
protected 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 listOptions()
listOptions
in interface OptionHandler
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-D
Turn on debugging output.
-W classname
Specify the full class name of a classifier as the basis for
boosting (required).
-I num
Set the number of boost iterations (default 10).
-P num
Set the percentage of weight mass used to build classifiers
(default 100).
-Q
Use resampling instead of reweighting.
-S seed
Random number seed for resampling (default 1).
Options after -- are passed to the designated classifier.
setOptions
in interface OptionHandler
options
- the list of options as an array of stringsjava.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
public void setClassifier(Classifier newClassifier)
newClassifier
- the Classifier to use.public Classifier getClassifier()
public void setMaxIterations(int maxIterations)
public int getMaxIterations()
public void setWeightThreshold(int threshold)
thresholding
- the percentage of weight mass used for trainingpublic int getWeightThreshold()
public void setSeed(int seed)
seed
- the seed for resamplingpublic int getSeed()
public void setDebug(boolean debug)
debug
- true if debug output should be printedpublic boolean getDebug()
public void setUseResampling(boolean r)
resampling
- true if resampling should be donepublic boolean getUseResampling()
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class Classifier
data
- the training data to be used for generating the
boosted classifier.java.lang.Exception
- if the classifier could not be built successfullyprotected void buildClassifierUsingResampling(Instances data) throws java.lang.Exception
data
- the training data to be used for generating the
boosted classifier.java.lang.Exception
- if the classifier could not be built successfullyprotected void buildClassifierWithWeights(Instances data) throws java.lang.Exception
data
- the training data to be used for generating the
boosted classifier.java.lang.Exception
- if the classifier could not be built successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in class DistributionClassifier
instance
- 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
toSource
in interface Sourcable
java.lang.Exception
- if something goes wrongpublic java.lang.String toString()
toString
in class java.lang.Object
public static void main(java.lang.String[] argv)
argv
- the options
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |