|
|||||||||
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.LogitBoost
Class for boosting any classifier that can handle weighted instances. This class performs classification using a regression scheme as the base learner, and can handle multi-class problems. For more information, see
Friedman, J., T. Hastie and R. Tibshirani (1998) Additive Logistic Regression: a Statistical View of Boosting download postscript.
Valid options are:
-D
Turn on debugging output.
-W classname
Specify the full class name of a weak learner as the basis for
boosting (required).
-I num
Set the number of boost iterations (default 10).
-Q
Use resampling instead of reweighting.
-S seed
Random number seed for resampling (default 1).
-P num
Set the percentage of weight mass used to build classifiers
(default 100).
Options after -- are passed to the designated learner.
Field Summary | |
protected Attribute |
m_ClassAttribute
The actual class attribute (for getting class names) |
protected Classifier |
m_Classifier
An instantiated base classifier used for getting and testing options |
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 Instances |
m_NumericClassData
Dummy dataset with a numeric class |
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 thresholding. |
protected static double |
VERY_SMALL
A very small number, below which weights cannot fall |
protected static double |
Z_MAX
A threshold for responses (Friedman suggests between 2 and 4) |
Constructor Summary | |
LogitBoost()
|
Method Summary | |
void |
buildClassifier(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 static double |
RtoP(double[] R,
int j)
Convert from function responses to probabilities |
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 thresholding |
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_Classifiers
protected Classifier m_Classifier
protected int m_MaxIterations
protected int m_NumClasses
protected int m_NumIterations
protected int m_WeightThreshold
protected boolean m_Debug
protected static final double VERY_SMALL
protected static final double Z_MAX
protected Instances m_NumericClassData
protected Attribute m_ClassAttribute
protected boolean m_UseResampling
protected int m_Seed
Constructor Detail |
public LogitBoost()
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 massprotected static double RtoP(double[] R, int j)
R
- an array containing the responses from each functionj
- the class value of interestpublic 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 weak learner as the basis for
boosting (required).
-I num
Set the number of boost iterations (default 10).
-Q
Use resampling instead of reweighting.
-S seed
Random number seed for resampling (default 1).
-P num
Set the percentage of weight mass used to build classifiers
(default 100).
Options after -- are passed to the designated learner.
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 setUseResampling(boolean r)
resampling
- true if resampling should be donepublic boolean getUseResampling()
public void setSeed(int seed)
seed
- the seed for resamplingpublic int getSeed()
public void setClassifier(Classifier newClassifier)
newClassifier
- the Classifier to use.public Classifier getClassifier()
public void setMaxIterations(int maxIterations)
maxIterations
- the maximum number of boost iterationspublic int getMaxIterations()
public void setWeightThreshold(int threshold)
thresholding
- the percentage of weight mass used for trainingpublic int getWeightThreshold()
public void setDebug(boolean debug)
debug
- true if debug output should be printedpublic boolean getDebug()
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 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 |