Class RegSMO

  • All Implemented Interfaces:
    java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler
    Direct Known Subclasses:
    RegSMOImproved

    public class RegSMO
    extends RegOptimizer
    implements TechnicalInformationHandler
    Implementation of SMO for support vector regression as described in :

    A.J. Smola, B. Schoelkopf (1998). A tutorial on support vector regression.

    BibTeX:

     @misc{Smola1998,
        author = {A.J. Smola and B. Schoelkopf},
        note = {NeuroCOLT2 Technical Report NC2-TR-1998-030},
        title = {A tutorial on support vector regression},
        year = {1998}
     }
     

    Valid options are:

     -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

      • RegSMO

        public RegSMO()
        default constructor
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing classifier
        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
        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 RegOptimizer
        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:

         -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 RegOptimizer
        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.
        Specified by:
        getOptions in interface OptionHandler
        Overrides:
        getOptions in class RegOptimizer
        Returns:
        an array of strings suitable for passing to setOptions
      • epsilonTipText

        public java.lang.String epsilonTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • 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.
      • optimize

        public void optimize()
                      throws java.lang.Exception
        finds alpha and alpha* parameters that optimize the SVM target function
        Throws:
        java.lang.Exception
      • buildClassifier

        public void buildClassifier​(Instances instances)
                             throws java.lang.Exception
        learn SVM parameters from data using Smola's SMO algorithm. Subclasses should implement something more interesting.
        Overrides:
        buildClassifier in class RegOptimizer
        Parameters:
        instances - the data to learn from
        Throws:
        java.lang.Exception - if something goes wrong