All Packages Class Hierarchy This Package Previous Next Index WEKA's home
Class weka.classifiers.SMO
java.lang.Object
|
+----weka.classifiers.Classifier
|
+----weka.classifiers.DistributionClassifier
|
+----weka.classifiers.SMO
- public class SMO
- extends DistributionClassifier
- implements OptionHandler
Implements John C. Platt's sequential minimal optimization
algorithm for training a support vector classifier using polynomial
kernels. Transforms output of SVM into probabilities by applying a
standard sigmoid function that is not fitted to the data.
This implementation globally replaces all missing values and
transforms nominal attributes into binary ones. For more
information on the SMO algorithm, see
J. Platt (1998). Fast Training of Support Vector
Machines using Sequential Minimal Optimization. Advances in Kernel
Methods - Support Vector Learning, B. Schölkopf, C. Burges, and
A. Smola, eds., MIT Press.
S.S. Keerthi, S.K. Shevade, C. Bhattacharyya, K.R.K. Murthy (2001).
Improvements to Platt's SMO Algorithm for SVM Classifier
Design. Neural Computation, 13(3), pp 637-649, 2001.
Note: for improved speed normalization should be turned off when
operating on SparseInstances.
Valid options are:
-C num
The complexity constant C. (default 1)
-E num
The exponent for the polynomial kernel. (default 1)
-N
Don't normalize the training instances.
-L
Rescale kernel.
-O
Use lower-order terms.
-A num
Sets the size of the kernel cache. Should be a prime number.
(default 1000003)
-T num
Sets the tolerance parameter. (default 1.0e-3)
-P num
Sets the epsilon for round-off error. (default 1.0e-12)
- Version:
- $Revision: 1.23.2.2 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz)
- Author:
- Shane Legg (shane@intelligenesis.net) (sparse vector code)
- Author:
- Stuart Inglis (stuart@intelligenesis.net) (sparse vector code)
SMO()
-
buildClassifier(Instances)
- Method for building the classifier.
distributionForInstance(Instance)
- Outputs the distribution for the given output.
getC()
- Get the value of C.
getCacheSize()
- Get the size of the kernel cache
getEpsilon()
- Get the value of epsilon.
getExponent()
- Get the value of exponent.
getLowerOrderTerms()
- Check whether lower-order terms are being used.
getNormalizeData()
- Check whether data is to be normalized.
getOptions()
- Gets the current settings of the classifier.
getRescaleKernel()
- Check whether kernel is being rescaled.
getToleranceParameter()
- Get the value of tolerance parameter.
listOptions()
- Returns an enumeration describing the available options
main(String[])
- Main method for testing this class.
setC(double)
- Set the value of C.
setCacheSize(int)
- Set the value of the kernel cache.
setEpsilon(double)
- Set the value of epsilon.
setExponent(double)
- Set the value of exponent.
setLowerOrderTerms(boolean)
- Set whether lower-order terms are to be used.
setNormalizeData(boolean)
- Set whether data is to be normalized.
setOptions(String[])
- Parses a given list of options.
setRescaleKernel(boolean)
- Set whether kernel is to be rescaled.
setToleranceParameter(double)
- Set the value of tolerance parameter.
toString()
- Prints out the classifier.
SMO
public SMO()
buildClassifier
public void buildClassifier(Instances insts) throws java.lang.Exception
Method for building the classifier.
- Parameters:
insts
- the set of training instances
- Throws:
- java.lang.Exception - if the classifier can't be built successfully
- Overrides:
- buildClassifier in class Classifier
distributionForInstance
public double[] distributionForInstance(Instance inst) throws java.lang.Exception
Outputs the distribution for the given output.
Pipes output of SVM through sigmoid function.
- Parameters:
inst
- the instance for which distribution is to be computed
- Returns:
- the distribution
- Throws:
- java.lang.Exception - if something goes wrong
- Overrides:
- distributionForInstance in class DistributionClassifier
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options
- Returns:
- an enumeration of all the available options
setOptions
public void setOptions(java.lang.String options[]) throws java.lang.Exception
Parses a given list of options. Valid options are:
-C num
The complexity constant C. (default 1)
-E num
The exponent for the polynomial kernel. (default 1)
-N
Don't normalize the training instances.
-L
Rescale kernel.
-O
Use lower-order terms.
-A num
Sets the size of the kernel cache. Should be a prime number. (default 1000003)
-T num
Sets the tolerance parameter. (default 1.0e-3)
-P num
Sets the epsilon for round-off error. (default 1.0e-12)
- Parameters:
options
- the list of options as an array of strings
- Throws:
- java.lang.Exception - if an option is not supported
getOptions
public java.lang.String[] getOptions()
Gets the current settings of the classifier.
- Returns:
- an array of strings suitable for passing to setOptions
toString
public java.lang.String toString()
Prints out the classifier.
- Returns:
- a description of the classifier as a string
- Overrides:
- toString in class java.lang.Object
getExponent
public double getExponent()
Get the value of exponent.
- Returns:
- Value of exponent.
setExponent
public void setExponent(double v)
Set the value of exponent. If linear kernel
is used, rescaling and lower-order terms are
turned off.
- Parameters:
v
- Value to assign to exponent.
getC
public double getC()
Get the value of C.
- Returns:
- Value of C.
setC
public void setC(double v)
Set the value of C.
- Parameters:
v
- Value to assign to C.
getToleranceParameter
public double getToleranceParameter()
Get the value of tolerance parameter.
- Returns:
- Value of tolerance parameter.
setToleranceParameter
public void setToleranceParameter(double v)
Set the value of tolerance parameter.
- Parameters:
v
- Value to assign to tolerance parameter.
getEpsilon
public double getEpsilon()
Get the value of epsilon.
- Returns:
- Value of epsilon.
setEpsilon
public void setEpsilon(double v)
Set the value of epsilon.
- Parameters:
v
- Value to assign to epsilon.
getCacheSize
public int getCacheSize()
Get the size of the kernel cache
- Returns:
- Size of kernel cache.
setCacheSize
public void setCacheSize(int v)
Set the value of the kernel cache.
- Parameters:
v
- Size of kernel cache.
getNormalizeData
public boolean getNormalizeData()
Check whether data is to be normalized.
- Returns:
- true if data is to be normalized
setNormalizeData
public void setNormalizeData(boolean v)
Set whether data is to be normalized.
- Parameters:
v
- true if data is to be normalized
getRescaleKernel
public boolean getRescaleKernel() throws java.lang.Exception
Check whether kernel is being rescaled.
- Returns:
- Value of rescale.
setRescaleKernel
public void setRescaleKernel(boolean v) throws java.lang.Exception
Set whether kernel is to be rescaled. Defaults
to false if a linear machine is built.
- Parameters:
v
- Value to assign to rescale.
getLowerOrderTerms
public boolean getLowerOrderTerms()
Check whether lower-order terms are being used.
- Returns:
- Value of lowerOrder.
setLowerOrderTerms
public void setLowerOrderTerms(boolean v)
Set whether lower-order terms are to be used. Defaults
to false if a linear machine is built.
- Parameters:
v
- Value to assign to lowerOrder.
main
public static void main(java.lang.String argv[])
Main method for testing this class.
All Packages Class Hierarchy This Package Previous Next Index WEKA's home