weka.classifiers.trees
Class REPTree

java.lang.Object
  extended by weka.classifiers.Classifier
      extended by weka.classifiers.trees.REPTree
All Implemented Interfaces:
Serializable, Cloneable, Sourcable, AdditionalMeasureProducer, CapabilitiesHandler, Drawable, OptionHandler, RevisionHandler, WeightedInstancesHandler

public class REPTree
extends Classifier
implements OptionHandler, WeightedInstancesHandler, Drawable, AdditionalMeasureProducer, Sourcable

Fast decision tree learner. Builds a decision/regression tree using information gain/variance and prunes it using reduced-error pruning (with backfitting). Only sorts values for numeric attributes once. Missing values are dealt with by splitting the corresponding instances into pieces (i.e. as in C4.5).

Valid options are:

 -M <minimum number of instances>
  Set minimum number of instances per leaf (default 2).
 -V <minimum variance for split>
  Set minimum numeric class variance proportion
  of train variance for split (default 1e-3).
 -N <number of folds>
  Number of folds for reduced error pruning (default 3).
 -S <seed>
  Seed for random data shuffling (default 1).
 -P
  No pruning.
 -L
  Maximum tree depth (default -1, no maximum)

Version:
$Revision: 7979 $
Author:
Eibe Frank ([email protected])
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
 
Constructor Summary
REPTree()
           
 
Method Summary
 void buildClassifier(Instances data)
          Builds classifier.
 double[] distributionForInstance(Instance instance)
          Computes class distribution of an instance using the tree.
 Enumeration enumerateMeasures()
          Returns an enumeration of the additional measure names.
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 int getMaxDepth()
          Get the value of MaxDepth.
 double getMeasure(String additionalMeasureName)
          Returns the value of the named measure.
 double getMinNum()
          Get the value of MinNum.
 double getMinVarianceProp()
          Get the value of MinVarianceProp.
 boolean getNoPruning()
          Get the value of NoPruning.
 int getNumFolds()
          Get the value of NumFolds.
 String[] getOptions()
          Gets options from this classifier.
 String getRevision()
          Returns the revision string.
 int getSeed()
          Get the value of Seed.
 String globalInfo()
          Returns a string describing classifier
 String graph()
          Outputs the decision tree as a graph
 int graphType()
          Returns the type of graph this classifier represents.
 Enumeration listOptions()
          Lists the command-line options for this classifier.
static void main(String[] argv)
          Main method for this class.
 String maxDepthTipText()
          Returns the tip text for this property
 String minNumTipText()
          Returns the tip text for this property
 String minVariancePropTipText()
          Returns the tip text for this property
 String noPruningTipText()
          Returns the tip text for this property
 String numFoldsTipText()
          Returns the tip text for this property
 int numNodes()
          Computes size of the tree.
 String seedTipText()
          Returns the tip text for this property
 void setMaxDepth(int newMaxDepth)
          Set the value of MaxDepth.
 void setMinNum(double newMinNum)
          Set the value of MinNum.
 void setMinVarianceProp(double newMinVarianceProp)
          Set the value of MinVarianceProp.
 void setNoPruning(boolean newNoPruning)
          Set the value of NoPruning.
 void setNumFolds(int newNumFolds)
          Set the value of NumFolds.
 void setOptions(String[] options)
          Parses a given list of options.
 void setSeed(int newSeed)
          Set the value of Seed.
 String toSource(String className)
          Returns the tree as if-then statements.
 String toString()
          Outputs the decision tree.
 
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

REPTree

public REPTree()
Method Detail

globalInfo

public String globalInfo()
Returns a string describing classifier

Returns:
a description suitable for displaying in the explorer/experimenter gui

noPruningTipText

public String noPruningTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getNoPruning

public boolean getNoPruning()
Get the value of NoPruning.

Returns:
Value of NoPruning.

setNoPruning

public void setNoPruning(boolean newNoPruning)
Set the value of NoPruning.

Parameters:
newNoPruning - Value to assign to NoPruning.

minNumTipText

public 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.

minVariancePropTipText

public String minVariancePropTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getMinVarianceProp

public double getMinVarianceProp()
Get the value of MinVarianceProp.

Returns:
Value of MinVarianceProp.

setMinVarianceProp

public void setMinVarianceProp(double newMinVarianceProp)
Set the value of MinVarianceProp.

Parameters:
newMinVarianceProp - Value to assign to MinVarianceProp.

seedTipText

public String seedTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getSeed

public int getSeed()
Get the value of Seed.

Returns:
Value of Seed.

setSeed

public void setSeed(int newSeed)
Set the value of Seed.

Parameters:
newSeed - Value to assign to Seed.

numFoldsTipText

public 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.

maxDepthTipText

public 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 value of MaxDepth.

Returns:
Value of MaxDepth.

setMaxDepth

public void setMaxDepth(int newMaxDepth)
Set the value of MaxDepth.

Parameters:
newMaxDepth - Value to assign to MaxDepth.

listOptions

public Enumeration listOptions()
Lists the command-line options for this classifier.

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class Classifier
Returns:
an enumeration over all commandline options

getOptions

public String[] getOptions()
Gets options from this classifier.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class Classifier
Returns:
the options for the current setup

setOptions

public void setOptions(String[] options)
                throws Exception
Parses a given list of options.

Valid options are:

 -M <minimum number of instances>
  Set minimum number of instances per leaf (default 2).
 -V <minimum variance for split>
  Set minimum numeric class variance proportion
  of train variance for split (default 1e-3).
 -N <number of folds>
  Number of folds for reduced error pruning (default 3).
 -S <seed>
  Seed for random data shuffling (default 1).
 -P
  No pruning.
 -L
  Maximum tree depth (default -1, no maximum)

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class Classifier
Parameters:
options - the list of options as an array of strings
Throws:
Exception - if an option is not supported

numNodes

public int numNodes()
Computes size of the tree.

Returns:
the number of nodes

enumerateMeasures

public Enumeration enumerateMeasures()
Returns an enumeration of the additional measure names.

Specified by:
enumerateMeasures in interface AdditionalMeasureProducer
Returns:
an enumeration of the measure names

getMeasure

public double getMeasure(String additionalMeasureName)
Returns the value of the named measure.

Specified by:
getMeasure in interface AdditionalMeasureProducer
Parameters:
additionalMeasureName - the name of the measure to query for its value
Returns:
the value of the named measure
Throws:
IllegalArgumentException - if the named measure is not supported

getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
getCapabilities in interface CapabilitiesHandler
Overrides:
getCapabilities in class Classifier
Returns:
the capabilities of this classifier
See Also:
Capabilities

buildClassifier

public void buildClassifier(Instances data)
                     throws Exception
Builds classifier.

Specified by:
buildClassifier in class Classifier
Parameters:
data - the data to train with
Throws:
Exception - if building fails

distributionForInstance

public double[] distributionForInstance(Instance instance)
                                 throws Exception
Computes class distribution of an instance using the tree.

Overrides:
distributionForInstance in class Classifier
Parameters:
instance - the instance to compute the distribution for
Returns:
the computed class probabilities
Throws:
Exception - if computation fails

toSource

public String toSource(String className)
                throws Exception
Returns the tree as if-then statements.

Specified by:
toSource in interface Sourcable
Parameters:
className - the name for the generated class
Returns:
the tree as a Java if-then type statement
Throws:
Exception - if something goes wrong

graphType

public int graphType()
Returns the type of graph this classifier represents.

Specified by:
graphType in interface Drawable
Returns:
Drawable.TREE

graph

public String graph()
             throws Exception
Outputs the decision tree as a graph

Specified by:
graph in interface Drawable
Returns:
the tree as a graph
Throws:
Exception - if generation fails

toString

public String toString()
Outputs the decision tree.

Overrides:
toString in class Object
Returns:
a string representation of the classifier

getRevision

public String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class Classifier
Returns:
the revision

main

public static void main(String[] argv)
Main method for this class.

Parameters:
argv - the commandline options


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.