weka.classifiers.functions.supportVector
Class RegSMOImproved

java.lang.Object
  extended by weka.classifiers.functions.supportVector.RegOptimizer
      extended by weka.classifiers.functions.supportVector.RegSMO
          extended by weka.classifiers.functions.supportVector.RegSMOImproved
All Implemented Interfaces:
java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class RegSMOImproved
extends RegSMO
implements TechnicalInformationHandler

Learn SVM for regression using SMO with Shevade, Keerthi, et al. adaption of the stopping criterion.

For more information see:

S.K. Shevade, S.S. Keerthi, C. Bhattacharyya, K.R.K. Murthy: Improvements to the SMO Algorithm for SVM Regression. In: IEEE Transactions on Neural Networks, 1999.

S.K. Shevade, S.S. Keerthi, C. Bhattacharyya, K.R.K. Murthy (1999). Improvements to the SMO Algorithm for SVM Regression. Control Division, Dept. of Mechanical Engineering.

BibTeX:

 @inproceedings{Shevade1999,
    author = {S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy},
    booktitle = {IEEE Transactions on Neural Networks},
    title = {Improvements to the SMO Algorithm for SVM Regression},
    year = {1999},
    PS = {http://guppy.mpe.nus.edu.sg/\~mpessk/svm/ieee_smo_reg.ps.gz}
 }
 
 @techreport{Shevade1999,
    address = {Control Division, Dept. of Mechanical Engineering},
    author = {S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy},
    institution = {National University of Singapore},
    number = {CD-99-16},
    title = {Improvements to the SMO Algorithm for SVM Regression},
    year = {1999},
    PS = {http://guppy.mpe.nus.edu.sg/\~mpessk/svm/smoreg_mod.ps.gz}
 }
 

Valid options are:

 -T <double>
  The tolerance parameter for checking the stopping criterion.
  (default 0.001)
 -V
  Use variant 1 of the algorithm when true, otherwise use variant 2.
  (default true)
 -P <double>
  The epsilon for round-off error.
  (default 1.0e-12)
 -L <double>
  The epsilon parameter in epsilon-insensitive loss function.
  (default 1.0e-3)
 -W <double>
  The random number seed.
  (default 1)

Version:
$Revision: 1.4 $
Author:
Remco Bouckaert (remco@cs.waikato.ac.nz,rrb@xm.co.nz)
See Also:
Serialized Form

Field Summary
static int I0
           
static int I0a
           
static int I0b
           
static int I1
           
static int I2
           
static int I3
           
 
Fields inherited from class weka.classifiers.functions.supportVector.RegOptimizer
m_alpha, m_alphaStar
 
Constructor Summary
RegSMOImproved()
           
 
Method Summary
 void buildClassifier(Instances instances)
          learn SVM parameters from data using Keerthi's SMO algorithm.
 java.lang.String[] getOptions()
          Gets the current settings of the object.
 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 getTolerance()
          returns the current tolerance
 java.lang.String globalInfo()
          Returns a string describing the object
 boolean isUseVariant1()
          Whether variant 1 is used
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setTolerance(double d)
          sets the tolerance
 void setUseVariant1(boolean b)
          Sets whether to use variant 1
 java.lang.String toleranceTipText()
          Returns the tip text for this property
 java.lang.String useVariant1TipText()
          Returns the tip text for this property
 
Methods inherited from class weka.classifiers.functions.supportVector.RegSMO
epsilonTipText, getEpsilon, optimize, setEpsilon
 
Methods inherited from class weka.classifiers.functions.supportVector.RegOptimizer
epsilonParameterTipText, getCacheHits, getEpsilonParameter, getKernelEvaluations, getSeed, modelBuilt, seedTipText, setEpsilonParameter, setSeed, setSMOReg, SVMOutput, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

I0

public static final int I0
See Also:
Constant Field Values

I0a

public static final int I0a
See Also:
Constant Field Values

I0b

public static final int I0b
See Also:
Constant Field Values

I1

public static final int I1
See Also:
Constant Field Values

I2

public static final int I2
See Also:
Constant Field Values

I3

public static final int I3
See Also:
Constant Field Values
Constructor Detail

RegSMOImproved

public RegSMOImproved()
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing the object

Overrides:
globalInfo in class RegSMO
Returns:
a description suitable for displaying in the explorer/experimenter gui

getTechnicalInformation

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

Specified by:
getTechnicalInformation in interface TechnicalInformationHandler
Overrides:
getTechnicalInformation in class RegSMO
Returns:
the technical information about this class

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class RegSMO
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:

 -T <double>
  The tolerance parameter for checking the stopping criterion.
  (default 0.001)
 -V
  Use variant 1 of the algorithm when true, otherwise use variant 2.
  (default true)
 -P <double>
  The epsilon for round-off error.
  (default 1.0e-12)
 -L <double>
  The epsilon parameter in epsilon-insensitive loss function.
  (default 1.0e-3)
 -W <double>
  The random number seed.
  (default 1)

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class RegSMO
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 object.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class RegSMO
Returns:
an array of strings suitable for passing to setOptions

toleranceTipText

public java.lang.String toleranceTipText()
Returns the tip text for this property

Returns:
a description suitable for displaying in the explorer/experimenter gui

getTolerance

public double getTolerance()
returns the current tolerance

Returns:
the tolerance

setTolerance

public void setTolerance(double d)
sets the tolerance

Parameters:
d - the new tolerance

useVariant1TipText

public java.lang.String useVariant1TipText()
Returns the tip text for this property

Returns:
a description suitable for displaying in the explorer/experimenter gui

isUseVariant1

public boolean isUseVariant1()
Whether variant 1 is used

Returns:
true if variant 1 is used

setUseVariant1

public void setUseVariant1(boolean b)
Sets whether to use variant 1

Parameters:
b - if true then variant 1 is used

buildClassifier

public void buildClassifier(Instances instances)
                     throws java.lang.Exception
learn SVM parameters from data using Keerthi's SMO algorithm. Subclasses should implement something more interesting.

Overrides:
buildClassifier in class RegSMO
Parameters:
instances - the data to work with
Throws:
java.lang.Exception - if something goes wrong

getRevision

public java.lang.String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class RegSMO
Returns:
the revision