public class SMOTEBoost
extends weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
implements weka.core.WeightedInstancesHandler, weka.classifiers.Sourcable, weka.core.TechnicalInformationHandler
@article{N.V. Chawla and A. Lazarevic and L.O. Hall and K.W. Bowyer},
title = {SMOTEBoost: Improving prediction of the minority class in boosting},
booktitle = {7th European Conference on Principles and Practice of Knowledge Discovery in Databases({PKDD 2003})},
city = {Cavtat Dubrovnik},
country = {Croatia},
pages = {107--119},
year = {2003}
}
Valid options are:
-smoteS <num> Specifies the random number seed (default 1)
-smoteP <percentage> Specifies percentage of SMOTE instances to create. (default 100.0)
-K <nearest-neighbors> Specifies the number of nearest neighbors to use. (default 5)
-C <value-index> Specifies the index of the nominal class value to SMOTE (default 0: auto-detect non-empty minority class))
-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 |
|---|
SMOTEBoost()
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.
|
java.lang.String |
getSMOTE_ClassValue()
Gets the index of the class value to which SMOTE should be applied.
|
int |
getSMOTE_NearestNeighbors()
Gets the number of nearest neighbors to use.
|
double |
getSMOTE_Percentage()
Gets the percentage of SMOTE instances to create.
|
int |
getSMOTE_RandomSeed()
Gets the random number seed.
|
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.SMOTE |
initSMOTE() |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(java.lang.String[] argv)
Main method for testing this class.
|
void |
setOptions(java.lang.String[] options)
Parses a given list of options.
|
void |
setSMOTE_ClassValue(java.lang.String value)
Sets the index of the class value to which SMOTE should be applied.
|
void |
setSMOTE_NearestNeighbors(int value)
Sets the number of nearest neighbors to use.
|
void |
setSMOTE_Percentage(double value)
Sets the percentage of SMOTE instances to create.
|
void |
setSMOTE_RandomSeed(int value)
Sets the random number seed.
|
void |
setUseResampling(boolean r)
Set resampling mode
|
void |
setWeightThreshold(int threshold)
Set weight threshold
|
java.lang.String |
SMOTE_classValueTipText()
Returns the tip text for this property.
|
java.lang.String |
SMOTE_nearestNeighborsTipText()
Returns the tip text for this property.
|
java.lang.String |
SMOTE_percentageTipText()
Returns the tip text for this property.
|
java.lang.String |
SMOTE_randomSeedTipText()
Returns the tip text for this property.
|
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
-smoteS <num> Specifies the random number seed (default 1)
-smoteP <percentage> Specifies percentage of SMOTE instances to create. (default 100.0)
-K <nearest-neighbors> Specifies the number of nearest neighbors to use. (default 5)
-C <value-index> Specifies the index of the nominal class value to SMOTE (default 0: auto-detect non-empty minority class))
-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 SMOTE_randomSeedTipText()
public int getSMOTE_RandomSeed()
public void setSMOTE_RandomSeed(int value)
value - the new random number seed.public java.lang.String SMOTE_percentageTipText()
public void setSMOTE_Percentage(double value)
value - the percentage to usepublic double getSMOTE_Percentage()
public java.lang.String SMOTE_nearestNeighborsTipText()
public void setSMOTE_NearestNeighbors(int value)
value - the number of nearest neighbors to usepublic int getSMOTE_NearestNeighbors()
public java.lang.String SMOTE_classValueTipText()
public void setSMOTE_ClassValue(java.lang.String value)
value - the class value indexpublic java.lang.String getSMOTE_ClassValue()
public weka.filters.supervised.instance.SMOTE initSMOTE()
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