Class REPTree

All Implemented Interfaces:
Serializable, Cloneable, Classifier, Sourcable, AdditionalMeasureProducer, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, Drawable, OptionHandler, PartitionGenerator, Randomizable, RevisionHandler, WeightedInstancesHandler

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: 15519 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • 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.
    • initialCountTipText

      public String initialCountTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getInitialCount

      public double getInitialCount()
      Get the value of InitialCount.
      Returns:
      Value of InitialCount.
    • setInitialCount

      public void setInitialCount(double newInitialCount)
      Set the value of InitialCount.
      Parameters:
      newInitialCount - Value to assign to InitialCount.
    • spreadInitialCountTipText

      public String spreadInitialCountTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSpreadInitialCount

      public boolean getSpreadInitialCount()
      Get the value of SpreadInitialCount.
      Returns:
      Value of SpreadInitialCount.
    • setSpreadInitialCount

      public void setSpreadInitialCount(boolean newSpreadInitialCount)
      Set the value of SpreadInitialCount.
      Parameters:
      newSpreadInitialCount - Value to assign to SpreadInitialCount.
    • listOptions

      public Enumeration<Option> listOptions()
      Lists the command-line options for this classifier.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class AbstractClassifier
      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 AbstractClassifier
      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 AbstractClassifier
      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<String> 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
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class AbstractClassifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Builds classifier.
      Specified by:
      buildClassifier in interface 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.
      Specified by:
      distributionForInstance in interface Classifier
      Overrides:
      distributionForInstance in class AbstractClassifier
      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
    • generatePartition

      public void generatePartition(Instances data) throws Exception
      Builds the classifier to generate a partition.
      Specified by:
      generatePartition in interface PartitionGenerator
      Throws:
      Exception
    • getMembershipValues

      public double[] getMembershipValues(Instance instance) throws Exception
      Computes array that indicates node membership. Array locations are allocated based on breadth-first exploration of the tree.
      Specified by:
      getMembershipValues in interface PartitionGenerator
      Throws:
      Exception
    • numElements

      public int numElements() throws Exception
      Returns the number of elements in the partition.
      Specified by:
      numElements in interface PartitionGenerator
      Throws:
      Exception
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClassifier
      Returns:
      the revision
    • main

      public static void main(String[] argv)
      Main method for this class.
      Parameters:
      argv - the commandline options