Class 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
    • 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
      • 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