Class RotationForest

All Implemented Interfaces:
Serializable, Cloneable, CapabilitiesHandler, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

Class for construction a Rotation Forest. Can do classification and regression depending on the base learner.

For more information, see

Juan J. Rodriguez, Ludmila I. Kuncheva, Carlos J. Alonso (2006). Rotation Forest: A new classifier ensemble method. IEEE Transactions on Pattern Analysis and Machine Intelligence. 28(10):1619-1630. URL http://doi.ieeecomputersociety.org/10.1109/TPAMI.2006.211.

BibTeX:

 @article{Rodriguez2006,
    author = {Juan J. Rodriguez and Ludmila I. Kuncheva and Carlos J. Alonso},
    journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
    number = {10},
    pages = {1619-1630},
    title = {Rotation Forest: A new classifier ensemble method},
    volume = {28},
    year = {2006},
    ISSN = {0162-8828},
    URL = {http://doi.ieeecomputersociety.org/10.1109/TPAMI.2006.211}
 }
 

Valid options are:

 -N
  Whether minGroup (-G) and maxGroup (-H) refer to
  the number of groups or their size.
  (default: false)
 -G <num>
  Minimum size of a group of attributes:
   if numberOfGroups is true, the minimum number
   of groups.
   (default: 3)
 -H <num>
  Maximum size of a group of attributes:
   if numberOfGroups is true, the maximum number
   of groups.
   (default: 3)
 -P <num>
  Percentage of instances to be removed.
   (default: 50)
 -F <filter specification>
  Full class name of filter to use, followed
  by filter options.
  eg: "weka.filters.unsupervised.attribute.PrincipalComponents-R 1.0"
 -S <num>
  Random number seed.
  (default 1)
 -I <num>
  Number of iterations.
  (default 10)
 -D
  If set, classifier is run in debug mode and
  may output additional info to the console
 -W
  Full name of base classifier.
  (default: weka.classifiers.trees.J48)
 
 Options specific to classifier weka.classifiers.trees.J48:
 
 -U
  Use unpruned tree.
 -C <pruning confidence>
  Set confidence threshold for pruning.
  (default 0.25)
 -M <minimum number of instances>
  Set minimum number of instances per leaf.
  (default 2)
 -R
  Use reduced error pruning.
 -N <number of folds>
  Set number of folds for reduced error
  pruning. One fold is used as pruning set.
  (default 3)
 -B
  Use binary splits only.
 -S
  Don't perform subtree raising.
 -L
  Do not clean up after the tree has been built.
 -A
  Laplace smoothing for predicted probabilities.
 -Q <seed>
  Seed for random data shuffling (default 1).
Version:
$Revision: 7012 $
Author:
Juan Jose Rodriguez (jjrodriguez@ubu.es)
See Also:
  • Constructor Details

    • RotationForest

      public RotationForest()
      Constructor.
  • 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
    • listOptions

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

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

      Valid options are:

       -N
        Whether minGroup (-G) and maxGroup (-H) refer to
        the number of groups or their size.
        (default: false)
       -G <num>
        Minimum size of a group of attributes:
         if numberOfGroups is true, the minimum number
         of groups.
         (default: 3)
       -H <num>
        Maximum size of a group of attributes:
         if numberOfGroups is true, the maximum number
         of groups.
         (default: 3)
       -P <num>
        Percentage of instances to be removed.
         (default: 50)
       -F <filter specification>
        Full class name of filter to use, followed
        by filter options.
        eg: "weka.filters.unsupervised.attribute.PrincipalComponents-R 1.0"
       -S <num>
        Random number seed.
        (default 1)
       -I <num>
        Number of iterations.
        (default 10)
       -D
        If set, classifier is run in debug mode and
        may output additional info to the console
       -W
        Full name of base classifier.
        (default: weka.classifiers.trees.J48)
       
       Options specific to classifier weka.classifiers.trees.J48:
       
       -U
        Use unpruned tree.
       -C <pruning confidence>
        Set confidence threshold for pruning.
        (default 0.25)
       -M <minimum number of instances>
        Set minimum number of instances per leaf.
        (default 2)
       -R
        Use reduced error pruning.
       -N <number of folds>
        Set number of folds for reduced error
        pruning. One fold is used as pruning set.
        (default 3)
       -B
        Use binary splits only.
       -S
        Don't perform subtree raising.
       -L
        Do not clean up after the tree has been built.
       -A
        Laplace smoothing for predicted probabilities.
       -Q <seed>
        Seed for random data shuffling (default 1).
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class RandomizableIteratedSingleClassifierEnhancer
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

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

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

      public void setNumberOfGroups(boolean numberOfGroups)
      Set whether minGroup and maxGroup refer to the number of groups or their size
      Parameters:
      numberOfGroups - whether minGroup and maxGroup refer to the number of groups or their size
    • getNumberOfGroups

      public boolean getNumberOfGroups()
      Get whether minGroup and maxGroup refer to the number of groups or their size
      Returns:
      whether minGroup and maxGroup refer to the number of groups or their size
    • minGroupTipText

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

      public void setMinGroup(int minGroup) throws IllegalArgumentException
      Sets the minimum size of a group.
      Parameters:
      minGroup - the minimum value. of attributes.
      Throws:
      IllegalArgumentException
    • getMinGroup

      public int getMinGroup()
      Gets the minimum size of a group.
      Returns:
      the minimum value.
    • maxGroupTipText

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

      public void setMaxGroup(int maxGroup) throws IllegalArgumentException
      Sets the maximum size of a group.
      Parameters:
      maxGroup - the maximum value. of attributes.
      Throws:
      IllegalArgumentException
    • getMaxGroup

      public int getMaxGroup()
      Gets the maximum size of a group.
      Returns:
      the maximum value.
    • removedPercentageTipText

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

      public void setRemovedPercentage(int removedPercentage) throws IllegalArgumentException
      Sets the percentage of instance to be removed
      Parameters:
      removedPercentage - the percentage.
      Throws:
      IllegalArgumentException
    • getRemovedPercentage

      public int getRemovedPercentage()
      Gets the percentage of instances to be removed
      Returns:
      the percentage.
    • projectionFilterTipText

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

      public void setProjectionFilter(Filter projectionFilter)
      Sets the filter used to project the data.
      Parameters:
      projectionFilter - the filter.
    • getProjectionFilter

      public Filter getProjectionFilter()
      Gets the filter used to project the data.
      Returns:
      the filter.
    • toString

      public String toString()
      Returns description of the Rotation Forest classifier.
      Overrides:
      toString in class Object
      Returns:
      description of the Rotation Forest classifier as a string
    • getRevision

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

      public void buildClassifier(Instances data) throws Exception
      builds the classifier.
      Overrides:
      buildClassifier in class IteratedSingleClassifierEnhancer
      Parameters:
      data - the training data to be used for generating the classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Calculates the class membership probabilities for the given test instance.
      Overrides:
      distributionForInstance in class Classifier
      Parameters:
      instance - the instance to be classified
      Returns:
      preedicted class probability distribution
      Throws:
      Exception - if distribution can't be computed successfully
    • main

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