public class SMO extends AbstractClassifier implements WeightedInstancesHandler, TechnicalInformationHandler
@incollection{Platt1998, author = {J. Platt}, booktitle = {Advances in Kernel Methods - Support Vector Learning}, editor = {B. Schoelkopf and C. Burges and A. Smola}, publisher = {MIT Press}, title = {Fast Training of Support Vector Machines using Sequential Minimal Optimization}, year = {1998}, URL = {http://research.microsoft.com/\~jplatt/smo.html}, PS = {http://research.microsoft.com/\~jplatt/smo-book.ps.gz}, PDF = {http://research.microsoft.com/\~jplatt/smo-book.pdf} } @article{Keerthi2001, author = {S.S. Keerthi and S.K. Shevade and C. Bhattacharyya and K.R.K. Murthy}, journal = {Neural Computation}, number = {3}, pages = {637-649}, title = {Improvements to Platt's SMO Algorithm for SVM Classifier Design}, volume = {13}, year = {2001}, PS = {http://guppy.mpe.nus.edu.sg/\~mpessk/svm/smo_mod_nc.ps.gz} } @inproceedings{Hastie1998, author = {Trevor Hastie and Robert Tibshirani}, booktitle = {Advances in Neural Information Processing Systems}, editor = {Michael I. Jordan and Michael J. Kearns and Sara A. Solla}, publisher = {MIT Press}, title = {Classification by Pairwise Coupling}, volume = {10}, year = {1998}, PS = {http://www-stat.stanford.edu/\~hastie/Papers/2class.ps} }
-no-checks Turns off all checks - use with caution! Turning them off assumes that data is purely numeric, doesn't contain any missing values, and has a nominal class. Turning them off also means that no header information will be stored if the machine is linear. Finally, it also assumes that no instance has a weight equal to 0. (default: checks on)
-C <double> The complexity constant C. (default 1)
-N Whether to 0=normalize/1=standardize/2=neither. (default 0=normalize)
-L <double> The tolerance parameter. (default 1.0e-3)
-P <double> The epsilon for round-off error. (default 1.0e-12)
-M Fit calibration models to SVM outputs.
-V <double> The number of folds for the internal cross-validation. (default -1, use training data)
-W <double> The random number seed. (default 1)
-K <classname and parameters> The Kernel to use. (default: weka.classifiers.functions.supportVector.PolyKernel)
-calibrator <scheme specification> Full name of calibration model, followed by options. (default: "weka.classifiers.functions.Logistic")
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
Options specific to kernel weka.classifiers.functions.supportVector.PolyKernel:
-E <num> The Exponent to use. (default: 1.0)
-L Use lower-order terms. (default: no)
-C <num> The size of the cache (a prime number), 0 for full cache and -1 to turn it off. (default: 250007)
-output-debug-info Enables debugging output (if available) to be printed. (default: off)
-no-checks Turns off all checks - use with caution! (default: checks on)
Options specific to calibrator weka.classifiers.functions.Logistic:
-C Use conjugate gradient descent rather than BFGS updates.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
Modifier and Type | Class and Description |
---|---|
class |
SMO.BinarySMO
Class for building a binary support vector machine.
|
Modifier and Type | Field and Description |
---|---|
static int |
FILTER_NONE
filter: No normalization/standardization
|
static int |
FILTER_NORMALIZE
filter: Normalize training data
|
static int |
FILTER_STANDARDIZE
filter: Standardize training data
|
static Tag[] |
TAGS_FILTER
The filter to apply to the training data
|
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
Constructor and Description |
---|
SMO() |
Modifier and Type | Method and Description |
---|---|
java.lang.String[][][] |
attributeNames()
Returns the attribute names.
|
double[][] |
bias()
Returns the bias of each binary SMO.
|
java.lang.String |
buildCalibrationModelsTipText()
Returns the tip text for this property
|
void |
buildClassifier(Instances insts)
Method for building the classifier.
|
java.lang.String |
calibratorTipText()
Returns the tip text for this property
|
java.lang.String |
checksTurnedOffTipText()
Returns the tip text for this property
|
java.lang.String[] |
classAttributeNames() |
java.lang.String |
cTipText()
Returns the tip text for this property
|
double[] |
distributionForInstance(Instance inst)
Estimates class probabilities for given instance.
|
java.lang.String |
epsilonTipText()
Returns the tip text for this property
|
java.lang.String |
filterTypeTipText()
Returns the tip text for this property
|
boolean |
getBuildCalibrationModels()
Get the value of buildCalibrationModels.
|
double |
getC()
Get the value of C.
|
Classifier |
getCalibrator()
Returns the calibrator to use
|
Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
boolean |
getChecksTurnedOff()
Returns whether the checks are turned off or not.
|
double |
getEpsilon()
Get the value of epsilon.
|
SelectedTag |
getFilterType()
Gets how the training data will be transformed.
|
Kernel |
getKernel()
Returns the kernel to use
|
int |
getNumFolds()
Get the value of numFolds.
|
java.lang.String[] |
getOptions()
Gets the current settings of the classifier.
|
int |
getRandomSeed()
Get the value of randomSeed.
|
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.
|
double |
getToleranceParameter()
Get the value of tolerance parameter.
|
java.lang.String |
globalInfo()
Returns a string describing classifier
|
java.lang.String |
kernelTipText()
Returns the tip text for this property
|
java.util.Enumeration<Option> |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(java.lang.String[] argv)
Main method for testing this class.
|
int |
numClassAttributeValues() |
java.lang.String |
numFoldsTipText()
Returns the tip text for this property
|
int[] |
obtainVotes(Instance inst)
Returns an array of votes for the given instance.
|
java.lang.String |
randomSeedTipText()
Returns the tip text for this property
|
void |
setBuildCalibrationModels(boolean newbuildCalibrationModels)
Set the value of buildCalibrationModels.
|
void |
setC(double v)
Set the value of C.
|
void |
setCalibrator(Classifier value)
sets the calibrator to use
|
void |
setChecksTurnedOff(boolean value)
Disables or enables the checks (which could be time-consuming).
|
void |
setEpsilon(double v)
Set the value of epsilon.
|
void |
setFilterType(SelectedTag newType)
Sets how the training data will be transformed.
|
void |
setKernel(Kernel value)
sets the kernel to use
|
void |
setNumFolds(int newnumFolds)
Set the value of numFolds.
|
void |
setOptions(java.lang.String[] options)
Parses a given list of options.
|
void |
setRandomSeed(int newrandomSeed)
Set the value of randomSeed.
|
void |
setToleranceParameter(double v)
Set the value of tolerance parameter.
|
int[][][] |
sparseIndices()
Returns the indices in sparse format.
|
double[][][] |
sparseWeights()
Returns the weights in sparse format.
|
java.lang.String |
toleranceParameterTipText()
Returns the tip text for this property
|
java.lang.String |
toString()
Prints out the classifier.
|
void |
turnChecksOff()
Turns off checks for missing values, etc.
|
void |
turnChecksOn()
Turns on checks for missing values, etc.
|
batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
makeCopy
public static final int FILTER_NORMALIZE
public static final int FILTER_STANDARDIZE
public static final int FILTER_NONE
public static final Tag[] TAGS_FILTER
public java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface TechnicalInformationHandler
public void turnChecksOff()
public void turnChecksOn()
public Capabilities getCapabilities()
getCapabilities
in interface Classifier
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class AbstractClassifier
Capabilities
public void buildClassifier(Instances insts) throws java.lang.Exception
buildClassifier
in interface Classifier
insts
- the set of training instancesjava.lang.Exception
- if the classifier can't be built successfullypublic double[] distributionForInstance(Instance inst) throws java.lang.Exception
distributionForInstance
in interface Classifier
distributionForInstance
in class AbstractClassifier
inst
- the instance to compute the probabilities forjava.lang.Exception
- in case of an errorpublic int[] obtainVotes(Instance inst) throws java.lang.Exception
inst
- the instancejava.lang.Exception
- if something goes wrongpublic double[][][] sparseWeights()
public int[][][] sparseIndices()
public double[][] bias()
public int numClassAttributeValues()
public java.lang.String[] classAttributeNames()
public java.lang.String[][][] attributeNames()
public java.util.Enumeration<Option> listOptions()
listOptions
in interface OptionHandler
listOptions
in class AbstractClassifier
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-no-checks Turns off all checks - use with caution! Turning them off assumes that data is purely numeric, doesn't contain any missing values, and has a nominal class. Turning them off also means that no header information will be stored if the machine is linear. Finally, it also assumes that no instance has a weight equal to 0. (default: checks on)
-C <double> The complexity constant C. (default 1)
-N Whether to 0=normalize/1=standardize/2=neither. (default 0=normalize)
-L <double> The tolerance parameter. (default 1.0e-3)
-P <double> The epsilon for round-off error. (default 1.0e-12)
-M Fit calibration models to SVM outputs.
-V <double> The number of folds for the internal cross-validation. (default -1, use training data)
-W <double> The random number seed. (default 1)
-K <classname and parameters> The Kernel to use. (default: weka.classifiers.functions.supportVector.PolyKernel)
-calibrator <scheme specification> Full name of calibration model, followed by options. (default: "weka.classifiers.functions.Logistic")
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
Options specific to kernel weka.classifiers.functions.supportVector.PolyKernel:
-E <num> The Exponent to use. (default: 1.0)
-L Use lower-order terms. (default: no)
-C <num> The size of the cache (a prime number), 0 for full cache and -1 to turn it off. (default: 250007)
-output-debug-info Enables debugging output (if available) to be printed. (default: off)
-no-checks Turns off all checks - use with caution! (default: checks on)
Options specific to calibrator weka.classifiers.functions.Logistic:
-C Use conjugate gradient descent rather than BFGS updates.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
setOptions
in interface OptionHandler
setOptions
in class AbstractClassifier
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 OptionHandler
getOptions
in class AbstractClassifier
public void setChecksTurnedOff(boolean value)
value
- if true turns off all checkspublic boolean getChecksTurnedOff()
public java.lang.String checksTurnedOffTipText()
public java.lang.String kernelTipText()
public void setKernel(Kernel value)
value
- the kernel to usepublic Kernel getKernel()
public java.lang.String calibratorTipText()
public void setCalibrator(Classifier value)
value
- the calibrator to usepublic Classifier getCalibrator()
public java.lang.String cTipText()
public double getC()
public void setC(double v)
v
- Value to assign to C.public java.lang.String toleranceParameterTipText()
public double getToleranceParameter()
public void setToleranceParameter(double v)
v
- Value to assign to tolerance parameter.public java.lang.String epsilonTipText()
public double getEpsilon()
public void setEpsilon(double v)
v
- Value to assign to epsilon.public java.lang.String filterTypeTipText()
public SelectedTag getFilterType()
public void setFilterType(SelectedTag newType)
newType
- the new filtering modepublic java.lang.String buildCalibrationModelsTipText()
public boolean getBuildCalibrationModels()
public void setBuildCalibrationModels(boolean newbuildCalibrationModels)
newbuildCalibrationModels
- Value to assign to buildCalibrationModels.public java.lang.String numFoldsTipText()
public int getNumFolds()
public void setNumFolds(int newnumFolds)
newnumFolds
- Value to assign to numFolds.public java.lang.String randomSeedTipText()
public int getRandomSeed()
public void setRandomSeed(int newrandomSeed)
newrandomSeed
- Value to assign to randomSeed.public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()
getRevision
in interface RevisionHandler
getRevision
in class AbstractClassifier
public static void main(java.lang.String[] argv)