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, 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
-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.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 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.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