Package weka.classifiers.trees
Class RandomTree
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.trees.RandomTree
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,CapabilitiesHandler
,Drawable
,OptionHandler
,Randomizable
,RevisionHandler
,WeightedInstancesHandler
public class RandomTree extends Classifier implements OptionHandler, WeightedInstancesHandler, Randomizable, Drawable
Class for constructing a tree that considers K randomly chosen attributes at each node. Performs no pruning. Also has an option to allow estimation of class probabilities based on a hold-out set (backfitting). Valid options are:-K <number of attributes> Number of attributes to randomly investigate. (default 0) (<0 = int(log_2(#predictors)+1)).
-M <minimum number of instances> Set minimum number of instances per leaf.
-S <num> Seed for random number generator. (default 1)
-depth <num> The maximum depth of the tree, 0 for unlimited. (default 0)
-N <num> Number of folds for backfitting (default 0, no backfitting).
-U Allow unclassified instances.
-D If set, classifier is run in debug mode and may output additional info to the console
- Version:
- $Revision: 10993 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz), Richard Kirkby (rkirkby@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
-
-
Constructor Summary
Constructors Constructor Description RandomTree()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
allowUnclassifiedInstancesTipText()
Returns the tip text for this propertyvoid
buildClassifier(Instances data)
Builds classifier.double[]
distributionForInstance(Instance instance)
Computes class distribution of an instance using the tree.void
generatePartition(Instances data)
Builds the classifier to generate a partition.boolean
getAllowUnclassifiedInstances()
Get the value of NumFolds.Capabilities
getCapabilities()
Returns default capabilities of the classifier.int
getKValue()
Get the value of K.int
getMaxDepth()
Get the maximum depth of trh tree, 0 for unlimited.double[]
getMembershipValues(Instance instance)
Computes array that indicates node membership.double
getMinNum()
Get the value of MinNum.int
getNumFolds()
Get the value of NumFolds.java.lang.String[]
getOptions()
Gets options from this classifier.int
getSeed()
Gets the seed for the random number generationsjava.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.lang.String
KValueTipText()
Returns the tip text for this propertyjava.util.Enumeration
listOptions()
Lists the command-line options for this classifier.static void
main(java.lang.String[] argv)
Main method for this class.java.lang.String
maxDepthTipText()
Returns the tip text for this propertyjava.lang.String
minNumTipText()
Returns the tip text for this propertyint
numElements()
Returns the number of elements in the partition.java.lang.String
numFoldsTipText()
Returns the tip text for this propertyjava.lang.String
seedTipText()
Returns the tip text for this propertyvoid
setAllowUnclassifiedInstances(boolean newAllowUnclassifiedInstances)
Set the value of AllowUnclassifiedInstances.void
setKValue(int k)
Set the value of K.void
setMaxDepth(int value)
Set the maximum depth of the tree, 0 for unlimited.void
setMinNum(double newMinNum)
Set the value of MinNum.void
setNumFolds(int newNumFolds)
Set the value of NumFolds.void
setOptions(java.lang.String[] options)
Parses a given list of options.void
setSeed(int seed)
Set the seed for random number generation.java.lang.String
toString()
Outputs the decision tree.-
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, getRevision, makeCopies, makeCopy, setDebug
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing classifier- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
minNumTipText
public java.lang.String minNumTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMinNum
public double getMinNum()
Get the value of MinNum.- Returns:
- Value of MinNum.
-
setMinNum
public void setMinNum(double newMinNum)
Set the value of MinNum.- Parameters:
newMinNum
- Value to assign to MinNum.
-
KValueTipText
public java.lang.String KValueTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getKValue
public int getKValue()
Get the value of K.- Returns:
- Value of K.
-
setKValue
public void setKValue(int k)
Set the value of K.- Parameters:
k
- Value to assign to K.
-
seedTipText
public java.lang.String seedTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSeed
public void setSeed(int seed)
Set the seed for random number generation.- Specified by:
setSeed
in interfaceRandomizable
- Parameters:
seed
- the seed
-
getSeed
public int getSeed()
Gets the seed for the random number generations- Specified by:
getSeed
in interfaceRandomizable
- Returns:
- the seed for the random number generation
-
maxDepthTipText
public java.lang.String maxDepthTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMaxDepth
public int getMaxDepth()
Get the maximum depth of trh tree, 0 for unlimited.- Returns:
- the maximum depth.
-
numFoldsTipText
public java.lang.String numFoldsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getNumFolds
public int getNumFolds()
Get the value of NumFolds.- Returns:
- Value of NumFolds.
-
setNumFolds
public void setNumFolds(int newNumFolds)
Set the value of NumFolds.- Parameters:
newNumFolds
- Value to assign to NumFolds.
-
allowUnclassifiedInstancesTipText
public java.lang.String allowUnclassifiedInstancesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getAllowUnclassifiedInstances
public boolean getAllowUnclassifiedInstances()
Get the value of NumFolds.- Returns:
- Value of NumFolds.
-
setAllowUnclassifiedInstances
public void setAllowUnclassifiedInstances(boolean newAllowUnclassifiedInstances)
Set the value of AllowUnclassifiedInstances.- Parameters:
newAllowUnclassifiedInstances
- Value to assign to AllowUnclassifiedInstances.
-
setMaxDepth
public void setMaxDepth(int value)
Set the maximum depth of the tree, 0 for unlimited.- Parameters:
value
- the maximum depth.
-
listOptions
public java.util.Enumeration listOptions()
Lists the command-line options for this classifier.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration over all possible options
-
getOptions
public java.lang.String[] getOptions()
Gets options from this classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- the options for the current setup
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Parses a given list of options. Valid options are:-K <number of attributes> Number of attributes to randomly investigate (<0 = int(log_2(#attributes)+1)).
-M <minimum number of instances> Set minimum number of instances per leaf.
-S <num> Seed for random number generator. (default 1)
-depth <num> The maximum depth of the tree, 0 for unlimited. (default 0)
-N <num> Number of folds for backfitting (default 0, no backfitting).
-U Allow unclassified instances.
-D If set, classifier is run in debug mode and may output additional info to the console
- 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
-
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 classifier.- Specified by:
buildClassifier
in classClassifier
- Parameters:
data
- the data to train with- Throws:
java.lang.Exception
- if something goes wrong or the data doesn't fit
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Computes class distribution of an instance using the tree.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance to compute the distribution for- Returns:
- the computed class probabilities
- Throws:
java.lang.Exception
- if computation fails
-
toString
public java.lang.String toString()
Outputs the decision tree.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of the classifier
-
graph
public java.lang.String graph() throws java.lang.Exception
Returns graph describing the tree.
-
graphType
public int graphType()
Returns the type of graph this classifier represents.
-
generatePartition
public void generatePartition(Instances data) throws java.lang.Exception
Builds the classifier to generate a partition.- Throws:
java.lang.Exception
-
getMembershipValues
public double[] getMembershipValues(Instance instance) throws java.lang.Exception
Computes array that indicates node membership. Array locations are allocated based on breadth-first exploration of the tree.- Throws:
java.lang.Exception
-
numElements
public int numElements() throws java.lang.Exception
Returns the number of elements in the partition.- Throws:
java.lang.Exception
-
main
public static void main(java.lang.String[] argv)
Main method for this class.- Parameters:
argv
- the commandline parameters
-
-