Package weka.classifiers.trees
Class FT
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.trees.FT
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,AdditionalMeasureProducer
,CapabilitiesHandler
,Drawable
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
public class FT extends Classifier implements OptionHandler, AdditionalMeasureProducer, Drawable, TechnicalInformationHandler
Classifier for building 'Functional trees', which are classification trees that could have logistic regression functions at the inner nodes and/or leaves. The algorithm can deal with binary and multi-class target variables, numeric and nominal attributes and missing values.
For more information see:
Joao Gama (2004). Functional Trees.
Niels Landwehr, Mark Hall, Eibe Frank (2005). Logistic Model Trees. BibTeX:@article{Gama2004, author = {Joao Gama}, booktitle = {Machine Learning}, number = {3}, pages = {219-250}, title = {Functional Trees}, volume = {55}, year = {2004} } @article{Landwehr2005, author = {Niels Landwehr and Mark Hall and Eibe Frank}, booktitle = {Machine Learning}, number = {1-2}, pages = {161-205}, title = {Logistic Model Trees}, volume = {95}, year = {2005} }
Valid options are:-B Binary splits (convert nominal attributes to binary ones)
-P Use error on probabilities instead of misclassification error for stopping criterion of LogitBoost.
-I <numIterations> Set fixed number of iterations for LogitBoost (instead of using cross-validation)
-F <modelType> Set Funtional Tree type to be generate: 0 for FT, 1 for FTLeaves and 2 for FTInner
-M <numInstances> Set minimum number of instances at which a node can be split (default 15)
-W <beta> Set beta for weight trimming for LogitBoost. Set to 0 (default) for no weight trimming.
-A The AIC is used to choose the best iteration.
- Version:
- $Revision: 5535 $
- Author:
- Jo\~{a}o Gama, Carlos Ferreira
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
MODEL_FT
model typesstatic int
MODEL_FTInner
static int
MODEL_FTLeaves
static Tag[]
TAGS_MODEL
possible model types.-
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
-
-
Constructor Summary
Constructors Constructor Description FT()
Creates an instance of FT with standard options
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
binSplitTipText()
Returns the tip text for this propertyvoid
buildClassifier(Instances data)
Builds the classifier.double
classifyInstance(Instance instance)
Classifies an instance.double[]
distributionForInstance(Instance instance)
Returns class probabilities for an instance.java.util.Enumeration
enumerateMeasures()
Returns an enumeration of the additional measure namesjava.lang.String
errorOnProbabilitiesTipText()
Returns the tip text for this propertyboolean
getBinSplit()
Get the value of binarySplits.Capabilities
getCapabilities()
Returns default capabilities of the classifier.boolean
getErrorOnProbabilities()
Get the value of errorOnProbabilities.double
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measureint
getMinNumInstances()
Get the value of minNumInstances.SelectedTag
getModelType()
Get the type of functional tree model being used.int
getNumBoostingIterations()
Get the value of numBoostingIterations.java.lang.String[]
getOptions()
Gets the current settings of the Classifier.java.lang.String
getRevision()
Returns the revision string.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
getUseAIC()
Get the value of useAIC.double
getWeightTrimBeta()
Get the value of weightTrimBeta.java.lang.String
globalInfo()
Returns a string describing classifierjava.lang.String
graph()
Returns graph describing the tree.int
graphType()
Returns the type of graph this classifier represents.java.util.Enumeration
listOptions()
Returns an enumeration describing the available options.static void
main(java.lang.String[] argv)
Main method for testing this classint
measureNumLeaves()
Returns the number of leaves in the treeint
measureTreeSize()
Returns the size of the treejava.lang.String
minNumInstancesTipText()
Returns the tip text for this propertyjava.lang.String
modelTypeTipText()
Returns the tip text for this propertyjava.lang.String
numBoostingIterationsTipText()
Returns the tip text for this propertyvoid
setBinSplit(boolean c)
Set the value of binarySplits.void
setErrorOnProbabilities(boolean c)
Set the value of errorOnProbabilities.void
setMinNumInstances(int c)
Set the value of minNumInstances.void
setModelType(SelectedTag newMethod)
Set the Functional Tree type.void
setNumBoostingIterations(int c)
Set the value of numBoostingIterations.void
setOptions(java.lang.String[] options)
Parses a given list of options.void
setUseAIC(boolean c)
Set the value of useAIC.void
setWeightTrimBeta(double n)
Set the value of weightTrimBeta.java.lang.String
toString()
Returns a description of the classifier.java.lang.String
useAICTipText()
Returns the tip text for this propertyjava.lang.String
weightTrimBetaTipText()
Returns the tip text for this property-
Methods inherited from class weka.classifiers.Classifier
debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
-
-
-
Field Detail
-
MODEL_FT
public static final int MODEL_FT
model types- See Also:
- Constant Field Values
-
MODEL_FTLeaves
public static final int MODEL_FTLeaves
- See Also:
- Constant Field Values
-
MODEL_FTInner
public static final int MODEL_FTInner
- See Also:
- Constant Field Values
-
TAGS_MODEL
public static final Tag[] TAGS_MODEL
possible model types.
-
-
Method Detail
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws java.lang.Exception
Builds the classifier.- Specified by:
buildClassifier
in classClassifier
- Parameters:
data
- the data to train with- Throws:
java.lang.Exception
- if classifier can't be built successfully
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Returns class probabilities for an instance.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance to compute the distribution for- Returns:
- the class probabilities
- Throws:
java.lang.Exception
- if distribution can't be computed successfully
-
classifyInstance
public double classifyInstance(Instance instance) throws java.lang.Exception
Classifies an instance.- Overrides:
classifyInstance
in classClassifier
- Parameters:
instance
- the instance to classify- Returns:
- the classification
- Throws:
java.lang.Exception
- if instance can't be classified successfully
-
toString
public java.lang.String toString()
Returns a description of the classifier.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of the classifier
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration of all the available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Parses a given list of options. Valid options are:-B Binary splits (convert nominal attributes to binary ones)
-P Use error on probabilities instead of misclassification error for stopping criterion of LogitBoost.
-I <numIterations> Set fixed number of iterations for LogitBoost (instead of using cross-validation)
-F <modelType> Set Funtional Tree type to be generate: 0 for FT, 1 for FTLeaves and 2 for FTInner
-M <numInstances> Set minimum number of instances at which a node can be split (default 15)
-W <beta> Set beta for weight trimming for LogitBoost. Set to 0 (default) for no weight trimming.
-A The AIC is used to choose the best iteration.
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- Parameters:
options
- the list of options as an array of strings- Throws:
java.lang.Exception
- if an option is not supported
-
getOptions
public java.lang.String[] getOptions()
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
getWeightTrimBeta
public double getWeightTrimBeta()
Get the value of weightTrimBeta.
-
getUseAIC
public boolean getUseAIC()
Get the value of useAIC.- Returns:
- Value of useAIC.
-
setWeightTrimBeta
public void setWeightTrimBeta(double n)
Set the value of weightTrimBeta.
-
setUseAIC
public void setUseAIC(boolean c)
Set the value of useAIC.- Parameters:
c
- Value to assign to useAIC.
-
getBinSplit
public boolean getBinSplit()
Get the value of binarySplits.- Returns:
- Value of binarySplits.
-
getErrorOnProbabilities
public boolean getErrorOnProbabilities()
Get the value of errorOnProbabilities.- Returns:
- Value of errorOnProbabilities.
-
getNumBoostingIterations
public int getNumBoostingIterations()
Get the value of numBoostingIterations.- Returns:
- Value of numBoostingIterations.
-
getModelType
public SelectedTag getModelType()
Get the type of functional tree model being used.- Returns:
- the type of functional tree model.
-
setModelType
public void setModelType(SelectedTag newMethod)
Set the Functional Tree type.- Parameters:
c
- Value corresponding to tree type.
-
getMinNumInstances
public int getMinNumInstances()
Get the value of minNumInstances.- Returns:
- Value of minNumInstances.
-
setBinSplit
public void setBinSplit(boolean c)
Set the value of binarySplits.- Parameters:
c
- Value to assign to binarySplits.
-
setErrorOnProbabilities
public void setErrorOnProbabilities(boolean c)
Set the value of errorOnProbabilities.- Parameters:
c
- Value to assign to errorOnProbabilities.
-
setNumBoostingIterations
public void setNumBoostingIterations(int c)
Set the value of numBoostingIterations.- Parameters:
c
- Value to assign to numBoostingIterations.
-
setMinNumInstances
public void setMinNumInstances(int c)
Set the value of minNumInstances.- Parameters:
c
- Value to assign to minNumInstances.
-
graphType
public int graphType()
Returns the type of graph this classifier represents.
-
graph
public java.lang.String graph() throws java.lang.Exception
Returns graph describing the tree.
-
measureTreeSize
public int measureTreeSize()
Returns the size of the tree- Returns:
- the size of the tree
-
measureNumLeaves
public int measureNumLeaves()
Returns the number of leaves in the tree- Returns:
- the number of leaves in the tree
-
enumerateMeasures
public java.util.Enumeration enumerateMeasures()
Returns an enumeration of the additional measure names- Specified by:
enumerateMeasures
in interfaceAdditionalMeasureProducer
- Returns:
- an enumeration of the measure names
-
getMeasure
public double getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measure- Specified by:
getMeasure
in interfaceAdditionalMeasureProducer
- Parameters:
additionalMeasureName
- the name of the measure to query for its value- Returns:
- the value of the named measure
- Throws:
java.lang.IllegalArgumentException
- if the named measure is not supported
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing classifier- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
getTechnicalInformation
public 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.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
modelTypeTipText
public java.lang.String modelTypeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
binSplitTipText
public java.lang.String binSplitTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
errorOnProbabilitiesTipText
public java.lang.String errorOnProbabilitiesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
numBoostingIterationsTipText
public java.lang.String numBoostingIterationsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
minNumInstancesTipText
public java.lang.String minNumInstancesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
weightTrimBetaTipText
public java.lang.String weightTrimBetaTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
useAICTipText
public java.lang.String useAICTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class- Parameters:
argv
- the commandline options
-
-