public class LogitBoost extends RandomizableIteratedSingleClassifierEnhancer implements Sourcable, WeightedInstancesHandler, TechnicalInformationHandler
@techreport{Friedman1998, address = {Stanford University}, author = {J. Friedman and T. Hastie and R. Tibshirani}, title = {Additive Logistic Regression: a Statistical View of Boosting}, year = {1998}, PS = {http://www-stat.stanford.edu/\~jhf/ftp/boost.ps} }Valid options are:
-Q Use resampling instead of reweighting for boosting.
-P <percent> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-F <num> Number of folds for internal cross-validation. (default 0 -- no cross-validation)
-R <num> Number of runs for internal cross-validation. (default 1)
-L <num> Threshold on the improvement of the likelihood. (default -Double.MAX_VALUE)
-H <num> Shrinkage parameter. (default 1)
-S <num> Random number seed. (default 1)
-I <num> Number of iterations. (default 10)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.trees.DecisionStump)
Options specific to classifier weka.classifiers.trees.DecisionStump:
-D If set, classifier is run in debug mode and may output additional info to the consoleOptions after -- are passed to the designated learner.
Modifier and Type | Field and Description |
---|---|
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 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 Classifier |
m_ZeroR
a ZeroR model in case no model can be built from the data
|
protected static double |
Z_MAX
A threshold for responses (Friedman suggests between 2 and 4)
|
m_Seed
m_NumIterations
m_Classifier
m_Debug
Constructor and Description |
---|
LogitBoost()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
buildClassifier(Instances data)
Builds the boosted classifier
|
Classifier[][] |
classifiers()
Returns the array of classifiers that have been built.
|
protected String |
defaultClassifierString()
String describing default classifier.
|
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance.
|
Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
double |
getLikelihoodThreshold()
Get the value of Precision.
|
int |
getNumFolds()
Get the value of NumFolds.
|
int |
getNumRuns()
Get the value of NumRuns.
|
String[] |
getOptions()
Gets the current settings of the Classifier.
|
String |
getRevision()
Returns the revision string.
|
double |
getShrinkage()
Get the value of Shrinkage.
|
TechnicalInformation |
getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing
detailed information about the technical background of this class,
e.g., paper reference or book this class is based on.
|
boolean |
getUseResampling()
Get whether resampling is turned on
|
int |
getWeightThreshold()
Get the degree of weight thresholding
|
String |
globalInfo()
Returns a string describing classifier
|
String |
likelihoodThresholdTipText()
Returns the tip text for this property
|
Enumeration |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(String[] argv)
Main method for testing this class.
|
String |
numFoldsTipText()
Returns the tip text for this property
|
String |
numRunsTipText()
Returns the tip text for this property
|
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(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
|
String |
shrinkageTipText()
Returns the tip text for this property
|
String |
toSource(String className)
Returns the boosted model as Java source code.
|
String |
toString()
Returns description of the boosted classifier.
|
String |
useResamplingTipText()
Returns the tip text for this property
|
String |
weightThresholdTipText()
Returns the tip text for this property
|
getSeed, seedTipText, setSeed
getNumIterations, numIterationsTipText, setNumIterations
classifierTipText, getClassifier, getClassifierSpec, setClassifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, runClassifier, setDebug
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 Random m_RandomInstance
protected double m_Offset
protected Classifier m_ZeroR
public String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface TechnicalInformationHandler
protected 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 masspublic Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class RandomizableIteratedSingleClassifierEnhancer
public void setOptions(String[] options) throws Exception
-Q Use resampling instead of reweighting for boosting.
-P <percent> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-F <num> Number of folds for internal cross-validation. (default 0 -- no cross-validation)
-R <num> Number of runs for internal cross-validation. (default 1)
-L <num> Threshold on the improvement of the likelihood. (default -Double.MAX_VALUE)
-H <num> Shrinkage parameter. (default 1)
-S <num> Random number seed. (default 1)
-I <num> Number of iterations. (default 10)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.trees.DecisionStump)
Options specific to classifier weka.classifiers.trees.DecisionStump:
-D If set, classifier is run in debug mode and may output additional info to the consoleOptions after -- are passed to the designated learner.
setOptions
in interface OptionHandler
setOptions
in class RandomizableIteratedSingleClassifierEnhancer
options
- the list of options as an array of stringsException
- if an option is not supportedpublic String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class RandomizableIteratedSingleClassifierEnhancer
public String shrinkageTipText()
public double getShrinkage()
public void setShrinkage(double newShrinkage)
newShrinkage
- Value to assign to Shrinkage.public String likelihoodThresholdTipText()
public double getLikelihoodThreshold()
public void setLikelihoodThreshold(double newPrecision)
newPrecision
- Value to assign to Precision.public String numRunsTipText()
public int getNumRuns()
public void setNumRuns(int newNumRuns)
newNumRuns
- Value to assign to NumRuns.public String numFoldsTipText()
public int getNumFolds()
public void setNumFolds(int newNumFolds)
newNumFolds
- Value to assign to NumFolds.public String useResamplingTipText()
public void setUseResampling(boolean r)
r
- true if resampling should be donepublic boolean getUseResampling()
public String weightThresholdTipText()
public void setWeightThreshold(int threshold)
threshold
- the percentage of weight mass used for trainingpublic int getWeightThreshold()
public Capabilities getCapabilities()
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class SingleClassifierEnhancer
Capabilities
public void buildClassifier(Instances data) throws Exception
buildClassifier
in class IteratedSingleClassifierEnhancer
data
- the data to train the classifier withException
- if building fails, e.g., can't handle datapublic Classifier[][] classifiers()
public double[] distributionForInstance(Instance instance) throws Exception
distributionForInstance
in class Classifier
instance
- the instance to be classifiedException
- if instance could not be classified
successfullypublic String toSource(String className) throws Exception
public String toString()
public String getRevision()
getRevision
in interface RevisionHandler
getRevision
in class Classifier
public static void main(String[] argv)
argv
- the optionsCopyright © 2015 University of Waikato, Hamilton, NZ. All rights reserved.