|
|||||||||
| 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 mass
protected 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 OptionHandleroptions - the list of options as an array of stringsjava.lang.Exception - if an option is not supportedpublic java.lang.String[] getOptions()
getOptions in interface OptionHandlerpublic 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 Classifierdata - the training data to be used for generating the
boosted classifier.java.lang.Exception - if the classifier could not be built successfully
public double[] distributionForInstance(Instance instance)
throws java.lang.Exception
distributionForInstance in class DistributionClassifierinstance - the instance to be classifiedjava.lang.Exception - if instance could not be classified
successfully
public java.lang.String toSource(java.lang.String className)
throws java.lang.Exception
toSource in interface Sourcablejava.lang.Exception - if something goes wrongpublic java.lang.String toString()
toString in class java.lang.Objectpublic 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 | ||||||||