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, setSeed
getNumIterations, numIterationsTipText, setNumIterations
classifierTipText, getClassifier, setClassifier
public java.lang.String globalInfo()
public weka.core.TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface weka.core.TechnicalInformationHandler
public java.util.Enumeration listOptions()
listOptions
in interface weka.core.OptionHandler
listOptions
in class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
public 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.OptionHandler
setOptions
in class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
options
- 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.OptionHandler
getOptions
in class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
public 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.Classifier
getCapabilities
in interface weka.core.CapabilitiesHandler
getCapabilities
in class weka.classifiers.SingleClassifierEnhancer
Capabilities
public void buildClassifier(weka.core.Instances data) throws java.lang.Exception
buildClassifier
in interface weka.classifiers.Classifier
buildClassifier
in class weka.classifiers.IteratedSingleClassifierEnhancer
data
- 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.Classifier
distributionForInstance
in class weka.classifiers.AbstractClassifier
instance
- 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.Sourcable
className
- the classname of the generated classjava.lang.Exception
- if something goes wrongpublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()
getRevision
in interface weka.core.RevisionHandler
getRevision
in class weka.classifiers.AbstractClassifier
public static void main(java.lang.String[] argv)
argv
- the options