Package weka.classifiers.meta

# Class RotationForest

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.IteratedSingleClassifierEnhancer
weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
weka.classifiers.meta.RotationForest

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

public class RotationForest extends RandomizableIteratedSingleClassifierEnhancer implements WeightedInstancesHandler, TechnicalInformationHandler
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:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`RotationForest()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances data)`
builds the classifier.
`double[]`
`distributionForInstance(Instance instance)`
Calculates the class membership probabilities for the given test instance.
`int`
`getMaxGroup()`
Gets the maximum size of a group.
`int`
`getMinGroup()`
Gets the minimum size of a group.
`boolean`
`getNumberOfGroups()`
Get whether minGroup and maxGroup refer to the number of groups or their size
`String[]`
`getOptions()`
Gets the current settings of the Classifier.
`Filter`
`getProjectionFilter()`
Gets the filter used to project the data.
`int`
`getRemovedPercentage()`
Gets the percentage of instances to be removed
`String`
`getRevision()`
Returns the revision string.
`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.
`String`
`globalInfo()`
Returns a string describing classifier
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`static void`
`main(String[] argv)`
Main method for testing this class.
`String`
`maxGroupTipText()`
Returns the tip text for this property
`String`
`minGroupTipText()`
Returns the tip text for this property
`String`
`numberOfGroupsTipText()`
Returns the tip text for this property
`String`
`projectionFilterTipText()`
Returns the tip text for this property
`String`
`removedPercentageTipText()`
Returns the tip text for this property
`void`
`setMaxGroup(int maxGroup)`
Sets the maximum size of a group.
`void`
`setMinGroup(int minGroup)`
Sets the minimum size of a group.
`void`
`setNumberOfGroups(boolean numberOfGroups)`
Set whether minGroup and maxGroup refer to the number of groups or their size
`void`
`setOptions(String[] options)`
Parses a given list of options.
`void`
`setProjectionFilter(Filter projectionFilter)`
Sets the filter used to project the data.
`void`
`setRemovedPercentage(int removedPercentage)`
Sets the percentage of instance to be removed
`String`
`toString()`
Returns description of the Rotation Forest classifier.

### Methods inherited from class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer

`getSeed, seedTipText, setSeed`

### Methods inherited from class weka.classifiers.IteratedSingleClassifierEnhancer

`getNumIterations, numIterationsTipText, setNumIterations`

### Methods inherited from class weka.classifiers.SingleClassifierEnhancer

`classifierTipText, getCapabilities, getClassifier, setClassifier`

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

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