Package weka.classifiers.trees

# Class REPTree

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.trees.REPTree

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Sourcable`, `AdditionalMeasureProducer`, `CapabilitiesHandler`, `Drawable`, `OptionHandler`, `Randomizable`, `RevisionHandler`, `WeightedInstancesHandler`

public class REPTree extends Classifier implements OptionHandler, WeightedInstancesHandler, Drawable, AdditionalMeasureProducer, Sourcable, Randomizable
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: 10275 $
Author:
  Eibe Frank (eibe@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
`REPTree()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### REPTree

public REPTree()

## Method Details

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

Specified by:
  `getSeed` in interface `Randomizable`
Returns:
  Value of Seed.

### setSeed

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

Specified by:
  `setSeed` in interface `Randomizable`
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