|
|||||||||||
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.LogitBoost
Class for performing additive logistic regression.. 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).
-F num
Set number of folds for the internal cross-validation
(default 0 -- no cross-validation).
-R num
Set number of runs for the internal cross-validation
(default 1).
-L num
Set the threshold for the improvement of the
average loglikelihood (default -Double.MAX_VALUE).
-H num
Set the value of the shrinkage parameter (default 1).
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_Classifiers
Array for storing the generated base classifiers. |
protected int |
m_NumClasses
The number of classes |
protected Instances |
m_NumericClassData
Dummy dataset with a numeric class |
protected int |
m_NumFolds
The number of folds for the internal cross-validation. |
protected int |
m_NumGenerated
The number of successfully generated base classifiers. |
protected int |
m_NumRuns
The number of runs for the internal cross-validation. |
protected double |
m_Offset
The value by which the actual target value for the true class is offset. |
protected double |
m_Precision
The threshold on the improvement of the likelihood |
protected java.util.Random |
m_RandomInstance
The random number generator used |
protected double |
m_Shrinkage
The value of the shrinkage parameter |
protected boolean |
m_UseResampling
Use boosting with reweighting? |
protected int |
m_WeightThreshold
Weight thresholding. |
protected static double |
Z_MAX
A threshold for responses (Friedman suggests between 2 and 4) |
Fields inherited from class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer |
m_Seed |
Fields inherited from class weka.classifiers.IteratedSingleClassifierEnhancer |
m_NumIterations |
Fields inherited from class weka.classifiers.SingleClassifierEnhancer |
m_Classifier |
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
LogitBoost()
Constructor. |
Method Summary | |
void |
buildClassifier(Instances data)
Builds the boosted classifier |
Classifier[][] |
classifiers()
Returns the array of classifiers that have been built. |
protected java.lang.String |
defaultClassifierString()
String describing default classifier. |
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
double |
getLikelihoodThreshold()
Get the value of Precision. |
int |
getNumFolds()
Get the value of NumFolds. |
int |
getNumRuns()
Get the value of NumRuns. |
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier. |
double |
getShrinkage()
Get the value of Shrinkage. |
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 |
private double[][] |
initialProbs(int numInstances)
Gets the intial class probabilities. |
java.lang.String |
likelihoodThresholdTipText()
Returns the tip text for this property |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
private double |
logLikelihood(double[][] trainYs,
double[][] probs)
Computes loglikelihood given class values and estimated probablities. |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
java.lang.String |
numFoldsTipText()
Returns the tip text for this property |
java.lang.String |
numRunsTipText()
Returns the tip text for this property |
private void |
performIteration(double[][] trainYs,
double[][] trainFs,
double[][] probs,
Instances data,
double origSumOfWeights)
Performs one boosting iteration. |
private double[] |
probs(double[] Fs)
Computes probabilities from F scores |
protected Instances |
selectWeightQuantile(Instances data,
double quantile)
Select only instances with weights that contribute to the specified quantile of the weight distribution |
void |
setLikelihoodThreshold(double newPrecision)
Set the value of Precision. |
void |
setNumFolds(int newNumFolds)
Set the value of NumFolds. |
void |
setNumRuns(int newNumRuns)
Set the value of NumRuns. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setShrinkage(double newShrinkage)
Set the value of Shrinkage. |
void |
setUseResampling(boolean r)
Set resampling mode |
void |
setWeightThreshold(int threshold)
Set weight thresholding |
java.lang.String |
shrinkageTipText()
Returns the tip text for this property |
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 |
protected Classifier[][] m_Classifiers
protected int m_NumClasses
protected int m_NumGenerated
protected int m_NumFolds
protected int m_NumRuns
protected int m_WeightThreshold
protected static final double Z_MAX
protected Instances m_NumericClassData
protected Attribute m_ClassAttribute
protected boolean m_UseResampling
protected double m_Precision
protected double m_Shrinkage
protected java.util.Random m_RandomInstance
protected double m_Offset
Constructor Detail |
public LogitBoost()
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 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).
-F num
Set number of folds for the internal cross-validation
(default 0 -- no cross-validation).
-R num
Set number of runs for the internal cross-validation
(default 1.
-L num
Set the threshold for the improvement of the
average loglikelihood (default -Double.MAX_VALUE).
-H num
Set the value of the shrinkage parameter (default 1).
Options after -- are passed to the designated learner.
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 shrinkageTipText()
public double getShrinkage()
public void setShrinkage(double newShrinkage)
newShrinkage
- Value to assign to Shrinkage.public java.lang.String likelihoodThresholdTipText()
public double getLikelihoodThreshold()
public void setLikelihoodThreshold(double newPrecision)
newPrecision
- Value to assign to Precision.public java.lang.String numRunsTipText()
public int getNumRuns()
public void setNumRuns(int newNumRuns)
newNumRuns
- Value to assign to NumRuns.public java.lang.String numFoldsTipText()
public int getNumFolds()
public void setNumFolds(int newNumFolds)
newNumFolds
- Value to assign to NumFolds.public java.lang.String useResamplingTipText()
public void setUseResampling(boolean r)
public boolean getUseResampling()
public java.lang.String weightThresholdTipText()
public void setWeightThreshold(int threshold)
public int getWeightThreshold()
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class IteratedSingleClassifierEnhancer
data
- the training data to be used for generating the
bagged classifier.
java.lang.Exception
- if the classifier could not be built successfullyprivate double[][] initialProbs(int numInstances)
private double logLikelihood(double[][] trainYs, double[][] probs)
private void performIteration(double[][] trainYs, double[][] trainFs, double[][] probs, Instances data, double origSumOfWeights) throws java.lang.Exception
java.lang.Exception
public Classifier[][] classifiers()
private double[] probs(double[] Fs)
public 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 |