|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.DistributionClassifier
weka.classifiers.meta.MultiBoostAB
Class for boosting a classifier using the MultiBoosting method.
MultiBoosting is an extension to the highly successful AdaBoost technique
for forming decision committees. MultiBoosting can be viewed as combining
AdaBoost with wagging. It is able to harness both AdaBoost's high bias and
variance reduction with wagging's superior variance reduction. Using C4.5
as the base learning algorithm, Multi-boosting is demonstrated to produce
decision committees with lower error than either AdaBoost or wagging
significantly more often than the reverse over a large representative cross-section
of UCI data sets. It offers the further advantage over AdaBoost of suiting parallel execution.
For more information, see
Geoffrey I. Webb (2000). MultiBoosting: A Technique for Combining Boosting and Wagging.
Machine Learning, 40(2): 159-196, Kluwer Academic Publishers, Boston
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).
-C subcommittees
Number of sub-committees. (Default 3),
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_NumSubCmtys
The number of sub-committees to use |
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 | |
MultiBoostAB()
|
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 |
int |
getNumSubCmtys()
Get the number of sub committees to use |
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 |
setNumSubCmtys(int subc)
Set the number of sub committees to use |
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 |
calculateEntropy, calculateLabeledInstanceMargin, calculateMargin, 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
protected int m_NumSubCmtys
Constructor Detail |
public MultiBoostAB()
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 mass
public 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).
-C subcommittees
Number of sub-committees. (Default 3),
Options after -- are passed to the designated classifier.
setOptions
in interface OptionHandler
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
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)
public int getWeightThreshold()
public void setSeed(int seed)
seed
- the seed for resamplingpublic int getSeed()
public void setNumSubCmtys(int subc)
public int getNumSubCmtys()
public void setDebug(boolean debug)
debug
- true if debug output should be printedpublic boolean getDebug()
public void setUseResampling(boolean r)
public 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 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 |