weka.classifiers.functions.supportVector

## Class RegSMOImproved

- java.lang.Object
- - weka.classifiers.functions.supportVector.RegOptimizer
  - - weka.classifiers.functions.supportVector.RegSMO
    - - 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: 10169 $
  Author:
    Remco Bouckaert (remco@cs.waikato.ac.nz,rrb@xm.co.nz)
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `RegSMOImproved()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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<Option>` | `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<Option> 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