Class SMOreg

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.functions.SMOreg
All Implemented Interfaces:
Serializable, Cloneable, Classifier, AdditionalMeasureProducer, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

SMOreg implements the support vector machine for regression. The parameters can be learned using various algorithms. The algorithm is selected by setting the RegOptimizer. The most popular algorithm (RegSMOImproved) is due to Shevade, Keerthi et al and this is the default RegOptimizer.

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.

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

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{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:

 -C <double>
  The complexity constant C.
  (default 1)
 -N
  Whether to 0=normalize/1=standardize/2=neither.
  (default 0=normalize)
 -I <classname and parameters>
  Optimizer class used for solving quadratic optimization problem
  (default weka.classifiers.functions.supportVector.RegSMOImproved)
 -K <classname and parameters>
  The Kernel to use.
  (default: weka.classifiers.functions.supportVector.PolyKernel)
 
 Options specific to optimizer ('-I') weka.classifiers.functions.supportVector.RegSMOImproved:
 
 -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)
 
 Options specific to kernel ('-K') weka.classifiers.functions.supportVector.PolyKernel:
 
 -D
  Enables debugging output (if available) to be printed.
  (default: off)
 -no-checks
  Turns off all checks - use with caution!
  (default: checks on)
 -C <num>
  The size of the cache (a prime number), 0 for full cache and 
  -1 to turn it off.
  (default: 250007)
 -E <num>
  The Exponent to use.
  (default: 1.0)
 -L
  Use lower-order terms.
  (default: no)
Version:
$Revision: 15519 $
Author:
Remco Bouckaert (remco@cs.waikato.ac.nz,rrb@xm.co.nz)
See Also:
  • Field Details

    • FILTER_NORMALIZE

      public static final int FILTER_NORMALIZE
      The filter to apply to the training data: Normalzie
      See Also:
    • FILTER_STANDARDIZE

      public static final int FILTER_STANDARDIZE
      The filter to apply to the training data: Standardize
      See Also:
    • FILTER_NONE

      public static final int FILTER_NONE
      The filter to apply to the training data: None
      See Also:
    • TAGS_FILTER

      public static final Tag[] TAGS_FILTER
      The filter to apply to the training data
  • Constructor Details

    • SMOreg

      public SMOreg()
  • Method Details

    • globalInfo

      public 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 Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class AbstractClassifier
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -C <double>
        The complexity constant C.
        (default 1)
       -N
        Whether to 0=normalize/1=standardize/2=neither.
        (default 0=normalize)
       -I <classname and parameters>
        Optimizer class used for solving quadratic optimization problem
        (default weka.classifiers.functions.supportVector.RegSMOImproved)
       -K <classname and parameters>
        The Kernel to use.
        (default: weka.classifiers.functions.supportVector.PolyKernel)
       
       Options specific to optimizer ('-I') weka.classifiers.functions.supportVector.RegSMOImproved:
       
       -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)
       
       Options specific to kernel ('-K') weka.classifiers.functions.supportVector.PolyKernel:
       
       -D
        Enables debugging output (if available) to be printed.
        (default: off)
       -no-checks
        Turns off all checks - use with caution!
        (default: checks on)
       -C <num>
        The size of the cache (a prime number), 0 for full cache and 
        -1 to turn it off.
        (default: 250007)
       -E <num>
        The Exponent to use.
        (default: 1.0)
       -L
        Use lower-order terms.
        (default: no)
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class AbstractClassifier
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the classifier.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class AbstractClassifier
      Returns:
      an array of strings suitable for passing to setOptions
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class AbstractClassifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances instances) throws Exception
      Method for building the classifier.
      Specified by:
      buildClassifier in interface Classifier
      Parameters:
      instances - the set of training instances
      Throws:
      Exception - if the classifier can't be built successfully
    • classifyInstance

      public double classifyInstance(Instance instance) throws Exception
      Classifies the given instance using the linear regression function.
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      instance - the test instance
      Returns:
      the classification
      Throws:
      Exception - if classification can't be done successfully
    • regOptimizerTipText

      public String regOptimizerTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setRegOptimizer

      public void setRegOptimizer(RegOptimizer regOptimizer)
      sets the learning algorithm
      Parameters:
      regOptimizer - the learning algorithm
    • getRegOptimizer

      public RegOptimizer getRegOptimizer()
      returns the learning algorithm
      Returns:
      the learning algorithm
    • kernelTipText

      public String kernelTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setKernel

      public void setKernel(Kernel value)
      sets the kernel to use
      Parameters:
      value - the kernel to use
    • getKernel

      public Kernel getKernel()
      Returns the kernel to use
      Returns:
      the current kernel
    • cTipText

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

      public String filterTypeTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getFilterType

      public SelectedTag getFilterType()
      Gets how the training data will be transformed. Will be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.
      Returns:
      the filtering mode
    • setFilterType

      public void setFilterType(SelectedTag newType)
      Sets how the training data will be transformed. Should be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.
      Parameters:
      newType - the new filtering mode
    • toString

      public String toString()
      Prints out the classifier.
      Overrides:
      toString in class Object
      Returns:
      a description of the classifier as a string
    • enumerateMeasures

      public Enumeration<String> enumerateMeasures()
      Returns an enumeration of the measure names. Additional measures must follow the naming convention of starting with "measure", eg. double measureBlah()
      Specified by:
      enumerateMeasures in interface AdditionalMeasureProducer
      Returns:
      an enumeration of the measure names
    • getMeasure

      public double getMeasure(String measureName)
      Returns the value of the named measure
      Specified by:
      getMeasure in interface AdditionalMeasureProducer
      Parameters:
      measureName - the name of the measure to query for its value
      Returns:
      the value of the named measure
      Throws:
      IllegalArgumentException - if the named measure is not supported
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClassifier
      Returns:
      the revision
    • main

      public static void main(String[] args)
      Main method for running this classifier.
      Parameters:
      args - the commandline options