public class RotationForest extends RandomizableIteratedSingleClassifierEnhancer implements WeightedInstancesHandler, TechnicalInformationHandler
@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).
| Constructor and Description |
|---|
RotationForest()
Constructor.
|
| Modifier and Type | Method and 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
|
java.lang.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
|
java.lang.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.
|
java.lang.String |
globalInfo()
Returns a string describing classifier
|
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(java.lang.String[] argv)
Main method for testing this class.
|
java.lang.String |
maxGroupTipText()
Returns the tip text for this property
|
java.lang.String |
minGroupTipText()
Returns the tip text for this property
|
java.lang.String |
numberOfGroupsTipText()
Returns the tip text for this property
|
java.lang.String |
projectionFilterTipText()
Returns the tip text for this property
|
java.lang.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(java.lang.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
|
java.lang.String |
toString()
Returns description of the Rotation Forest classifier.
|
getSeed, seedTipText, setSeedgetNumIterations, numIterationsTipText, setNumIterationsclassifierTipText, getCapabilities, getClassifier, setClassifierclassifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebugpublic java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation in interface TechnicalInformationHandlerpublic java.util.Enumeration listOptions()
listOptions in interface OptionHandlerlistOptions in class RandomizableIteratedSingleClassifierEnhancerpublic void setOptions(java.lang.String[] options)
throws java.lang.Exception
-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).
setOptions in interface OptionHandlersetOptions in class RandomizableIteratedSingleClassifierEnhanceroptions - the list of options as an array of stringsjava.lang.Exception - if an option is not supportedpublic java.lang.String[] getOptions()
getOptions in interface OptionHandlergetOptions in class RandomizableIteratedSingleClassifierEnhancerpublic java.lang.String numberOfGroupsTipText()
public void setNumberOfGroups(boolean numberOfGroups)
numberOfGroups - whether minGroup and maxGroup refer to the number
of groups or their sizepublic boolean getNumberOfGroups()
public java.lang.String minGroupTipText()
public void setMinGroup(int minGroup)
throws java.lang.IllegalArgumentException
minGroup - the minimum value.
of attributes.java.lang.IllegalArgumentExceptionpublic int getMinGroup()
public java.lang.String maxGroupTipText()
public void setMaxGroup(int maxGroup)
throws java.lang.IllegalArgumentException
maxGroup - the maximum value.
of attributes.java.lang.IllegalArgumentExceptionpublic int getMaxGroup()
public java.lang.String removedPercentageTipText()
public void setRemovedPercentage(int removedPercentage)
throws java.lang.IllegalArgumentException
removedPercentage - the percentage.java.lang.IllegalArgumentExceptionpublic int getRemovedPercentage()
public java.lang.String projectionFilterTipText()
public void setProjectionFilter(Filter projectionFilter)
projectionFilter - the filter.public Filter getProjectionFilter()
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String getRevision()
getRevision in interface RevisionHandlergetRevision in class Classifierpublic void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier in class IteratedSingleClassifierEnhancerdata - the training data to be used for generating the
classifier.java.lang.Exception - if the classifier could not be built successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance in class Classifierinstance - the instance to be classifiedjava.lang.Exception - if distribution can't be computed successfullypublic static void main(java.lang.String[] argv)
argv - the options