Class RandomForest

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.trees.RandomForest
All Implemented Interfaces:
Serializable, Cloneable, AdditionalMeasureProducer, CapabilitiesHandler, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

Class for constructing a forest of random trees.

For more information see:

Leo Breiman (2001). Random Forests. Machine Learning. 45(1):5-32.

BibTeX:

 @article{Breiman2001,
    author = {Leo Breiman},
    journal = {Machine Learning},
    number = {1},
    pages = {5-32},
    title = {Random Forests},
    volume = {45},
    year = {2001}
 }
 

Valid options are:

 -I <number of trees>
  Number of trees to build.
 
 -K <number of features>
  Number of features to consider (<0 = int(log_2(#predictors)+1)).
 
 -S
  Seed for random number generator.
  (default 1)
 
 -depth <num>
  The maximum depth of the trees, 0 for unlimited.
  (default 0)
 
 -D
  If set, classifier is run in debug mode and
  may output additional info to the console
 
Version:
$Revision: 1.13 $
Author:
Richard Kirkby (rkirkby@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • RandomForest

      public RandomForest()
  • Method Details

    • globalInfo

      public 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 interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • numTreesTipText

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

      public int getNumTrees()
      Get the value of numTrees.
      Returns:
      Value of numTrees.
    • setNumTrees

      public void setNumTrees(int newNumTrees)
      Set the value of numTrees.
      Parameters:
      newNumTrees - Value to assign to numTrees.
    • numFeaturesTipText

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

      public int getNumFeatures()
      Get the number of features used in random selection.
      Returns:
      Value of numFeatures.
    • setNumFeatures

      public void setNumFeatures(int newNumFeatures)
      Set the number of features to use in random selection.
      Parameters:
      newNumFeatures - Value to assign to numFeatures.
    • 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
    • setSeed

      public void setSeed(int seed)
      Set the seed for random number generation.
      Specified by:
      setSeed in interface Randomizable
      Parameters:
      seed - the seed
    • getSeed

      public int getSeed()
      Gets the seed for the random number generations
      Specified by:
      getSeed in interface Randomizable
      Returns:
      the seed for the random number generation
    • 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 maximum depth of trh tree, 0 for unlimited.
      Returns:
      the maximum depth.
    • setMaxDepth

      public void setMaxDepth(int value)
      Set the maximum depth of the tree, 0 for unlimited.
      Parameters:
      value - the maximum depth.
    • measureOutOfBagError

      public double measureOutOfBagError()
      Gets the out of bag error that was calculated as the classifier was built.
      Returns:
      the out of bag error
    • 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
    • listOptions

      public Enumeration listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class Classifier
      Returns:
      an enumeration of all the available options
    • getOptions

      public String[] getOptions()
      Gets the current settings of the forest.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class Classifier
      Returns:
      an array of strings suitable for passing to setOptions()
    • setOptions

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

      Valid options are:

       -I <number of trees>
        Number of trees to build.
       
       -K <number of features>
        Number of features to consider (<0 = int(log_2(#predictors)+1)).
       
       -S
        Seed for random number generator.
        (default 1)
       
       -depth <num>
        The maximum depth of the trees, 0 for unlimited.
        (default 0)
       
       -D
        If set, classifier is run in debug mode and
        may output additional info to the console
       
      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
    • 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:
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Builds a classifier for a set of instances.
      Specified by:
      buildClassifier in class Classifier
      Parameters:
      data - the instances to train the classifier with
      Throws:
      Exception - if something goes wrong
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Returns the class probability distribution for an instance.
      Overrides:
      distributionForInstance in class Classifier
      Parameters:
      instance - the instance to be classified
      Returns:
      the distribution the forest generates for the instance
      Throws:
      Exception - if computation fails
    • toString

      public String toString()
      Outputs a description of this classifier.
      Overrides:
      toString in class Object
      Returns:
      a string containing a description 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 options