public class RUSBoost
extends weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
implements weka.core.WeightedInstancesHandler, weka.classifiers.Sourcable, weka.core.TechnicalInformationHandler
@article{C. Seiffert and T. Khoshgoftaar and J. Van Hulse and A. Napolitano},
title = {Rusboost: A hybrid approach to alleviating class imbalance},
journal = {IEEE Transactions on Systems and Man and Cybernetics and Part A},
volume = {40},
number = {1},
pages = {185--197},
year = {2010}
}
Valid options are:
-rusP <Percentage> Specifies the proportion of final majority class respecting the minority class. (default 75). If the percentage specified is higher than the current majority percentage, the filter does nothing, else, the filter eliminates majority classes randomly until the majority proportion reaches the specified percentage.
-P <num> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-Q Use resampling for boosting.
-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.DecisionStump)
Options specific to classifier weka.classifiers.trees.DecisionStump:
-D If set, classifier is run in debug mode and may output additional info to the consoleOptions after -- are passed to the designated classifier.
| Constructor and Description |
|---|
RUSBoost()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
buildClassifier(weka.core.Instances data)
Boosting method.
|
double[] |
distributionForInstance(weka.core.Instance instance)
Calculates the class membership probabilities for the given test
instance.
|
weka.core.Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier.
|
java.lang.String |
getRevision()
Returns the revision string.
|
double |
getRUS_Percentage()
Gets the percentage of the proportion of majority class.
|
weka.core.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.
|
boolean |
getUseResampling()
Get whether resampling is turned on
|
int |
getWeightThreshold()
Get the degree of weight thresholding
|
java.lang.String |
globalInfo()
Returns a string describing classifier
|
weka.filters.supervised.instance.RUS |
initRUS() |
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 |
RUS_percentageTipText()
Returns the tip text for this property.
|
void |
setOptions(java.lang.String[] options)
Parses a given list of options.
|
void |
setRUS_Percentage(double value)
Sets the percentage of the proportion of majority class.
|
void |
setUseResampling(boolean r)
Set resampling mode
|
void |
setWeightThreshold(int threshold)
Set weight threshold
|
java.lang.String |
toSource(java.lang.String className)
Returns the boosted model as Java source code.
|
java.lang.String |
toString()
Returns description of the boosted classifier.
|
java.lang.String |
useResamplingTipText()
Returns the tip text for this property
|
java.lang.String |
weightThresholdTipText()
Returns the tip text for this property
|
getSeed, seedTipText, setSeedgetNumIterations, numIterationsTipText, setNumIterationsclassifierTipText, getClassifier, setClassifierpublic java.lang.String globalInfo()
public weka.core.TechnicalInformation getTechnicalInformation()
getTechnicalInformation in interface weka.core.TechnicalInformationHandlerpublic java.util.Enumeration listOptions()
listOptions in interface weka.core.OptionHandlerlistOptions in class weka.classifiers.RandomizableIteratedSingleClassifierEnhancerpublic void setOptions(java.lang.String[] options)
throws java.lang.Exception
-rusP <Percentage> Specifies the proportion of final majority class respecting the minority class. (default 75). If the percentage specified is higher than the current majority percentage, the filter does nothing, else, the filter eliminates majority classes randomly until the majority proportion reaches the specified percentage.
-P <num> Percentage of weight mass to base training on. (default 100, reduce to around 90 speed up)
-Q Use resampling for boosting.
-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.DecisionStump)
Options specific to classifier weka.classifiers.trees.DecisionStump:
-D If set, classifier is run in debug mode and may output additional info to the consoleOptions after -- are passed to the designated classifier.
setOptions in interface weka.core.OptionHandlersetOptions in class weka.classifiers.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 weka.core.OptionHandlergetOptions in class weka.classifiers.RandomizableIteratedSingleClassifierEnhancerpublic java.lang.String weightThresholdTipText()
public void setWeightThreshold(int threshold)
threshold - the percentage of weight mass used for trainingpublic int getWeightThreshold()
public java.lang.String useResamplingTipText()
public void setUseResampling(boolean r)
r - true if resampling should be donepublic boolean getUseResampling()
public java.lang.String RUS_percentageTipText()
public void setRUS_Percentage(double value)
value - the percentage to usepublic double getRUS_Percentage()
public weka.filters.supervised.instance.RUS initRUS()
public weka.core.Capabilities getCapabilities()
getCapabilities in interface weka.classifiers.ClassifiergetCapabilities in interface weka.core.CapabilitiesHandlergetCapabilities in class weka.classifiers.SingleClassifierEnhancerCapabilitiespublic void buildClassifier(weka.core.Instances data)
throws java.lang.Exception
buildClassifier in interface weka.classifiers.ClassifierbuildClassifier in class weka.classifiers.IteratedSingleClassifierEnhancerdata - the training data to be used for generating the boosted
classifier.java.lang.Exception - if the classifier could not be built successfullypublic double[] distributionForInstance(weka.core.Instance instance)
throws java.lang.Exception
distributionForInstance in interface weka.classifiers.ClassifierdistributionForInstance in class weka.classifiers.AbstractClassifierinstance - the instance to be classifiedjava.lang.Exception - if instance could not be classified successfullypublic java.lang.String toSource(java.lang.String className)
throws java.lang.Exception
toSource in interface weka.classifiers.SourcableclassName - the classname of the generated classjava.lang.Exception - if something goes wrongpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String getRevision()
getRevision in interface weka.core.RevisionHandlergetRevision in class weka.classifiers.AbstractClassifierpublic static void main(java.lang.String[] argv)
argv - the options