|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.IteratedSingleClassifierEnhancer
weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
weka.classifiers.meta.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 int |
m_NumClasses
The number of classes |
protected int |
m_NumIterationsPerformed
The number of successfully generated base classifiers. |
protected boolean |
m_UseResampling
Use boosting with reweighting? |
protected int |
m_WeightThreshold
Weight Threshold. |
private static int |
MAX_NUM_RESAMPLING_ITERATIONS
Max num iterations tried to find classifier with non-zero error. |
Fields inherited from class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer |
m_Seed |
Fields inherited from class weka.classifiers.IteratedSingleClassifierEnhancer |
m_Classifiers, m_NumIterations |
Fields inherited from class weka.classifiers.SingleClassifierEnhancer |
m_Classifier |
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
AdaBoostM1()
Constructor. |
Method Summary | |
void |
buildClassifier(Instances data)
Boosting method. |
protected void |
buildClassifierUsingResampling(Instances data)
Boosting method. |
protected void |
buildClassifierWithWeights(Instances data)
Boosting method. |
protected java.lang.String |
defaultClassifierString()
String describing default classifier. |
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier. |
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 |
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 |
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 |
Methods 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, getClassifierSpec, setClassifier |
Methods inherited from class weka.classifiers.Classifier |
classifyInstance, debugTipText, forName, getDebug, makeCopies, setDebug |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private static int MAX_NUM_RESAMPLING_ITERATIONS
protected double[] m_Betas
protected int m_NumIterationsPerformed
protected int m_WeightThreshold
protected boolean m_UseResampling
protected int m_NumClasses
Constructor Detail |
public AdaBoostM1()
Method Detail |
public java.lang.String globalInfo()
protected java.lang.String defaultClassifierString()
defaultClassifierString
in class SingleClassifierEnhancer
protected Instances selectWeightQuantile(Instances data, double quantile)
data
- the input instancesquantile
- the specified quantile eg 0.9 to select
90% of the weight mass
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class RandomizableIteratedSingleClassifierEnhancer
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
setOptions
in class RandomizableIteratedSingleClassifierEnhancer
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class RandomizableIteratedSingleClassifierEnhancer
public java.lang.String weightThresholdTipText()
public void setWeightThreshold(int threshold)
public int getWeightThreshold()
public java.lang.String useResamplingTipText()
public void setUseResampling(boolean r)
public boolean getUseResampling()
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class IteratedSingleClassifierEnhancer
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 setWeights(Instances training, double reweight) throws java.lang.Exception
java.lang.Exception
protected 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 Classifier
instance
- the instance to be classified
java.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
className
- the name that should be given to the source class.
java.lang.Exception
- if something goes wrongpublic java.lang.String toString()
public static void main(java.lang.String[] argv)
argv
- the options
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |