Package weka.classifiers.functions

# 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`

public class SMOreg extends AbstractClassifier implements WeightedInstancesHandler, AdditionalMeasureProducer, TechnicalInformationHandler
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: 15520 $
Author:
  Remco Bouckaert (remco@cs.waikato.ac.nz,rrb@xm.co.nz)
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `FILTER_NONE`
  The filter to apply to the training data: None
  `static final int`
  `FILTER_NORMALIZE`
  The filter to apply to the training data: Normalzie
  `static final int`
  `FILTER_STANDARDIZE`
  The filter to apply to the training data: Standardize
  `static final Tag[]`
  `TAGS_FILTER`
  The filter to apply to the training data

  ### Fields inherited from class weka.classifiers.AbstractClassifier

  `BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SMOreg()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `buildClassifier(Instances instances)`
  Method for building the classifier.
  `double`
  `classifyInstance(Instance instance)`
  Classifies the given instance using the linear regression function.
  `String`
  `cTipText()`
  Returns the tip text for this property
  `Enumeration<String>`
  `enumerateMeasures()`
  Returns an enumeration of the measure names.
  `String`
  `filterTypeTipText()`
  Returns the tip text for this property
  `double`
  `getC()`
  Get the value of C.
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the classifier.
  `SelectedTag`
  `getFilterType()`
  Gets how the training data will be transformed.
  `Kernel`
  `getKernel()`
  Returns the kernel to use
  `double`
  `getMeasure(String measureName)`
  Returns the value of the named measure
  `String[]`
  `getOptions()`
  Gets the current settings of the classifier.
  `RegOptimizer`
  `getRegOptimizer()`
  returns the learning algorithm
  `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.
  `String`
  `globalInfo()`
  Returns a string describing classifier
  `String`
  `kernelTipText()`
  Returns the tip text for this property
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] args)`
  Main method for running this classifier.
  `String`
  `regOptimizerTipText()`
  Returns the tip text for this property
  `void`
  `setC(double v)`
  Set the value of C.
  `void`
  `setFilterType(SelectedTag newType)`
  Sets how the training data will be transformed.
  `void`
  `setKernel(Kernel value)`
  sets the kernel to use
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setRegOptimizer(RegOptimizer regOptimizer)`
  sets the learning algorithm
  `String`
  `toString()`
  Prints out the classifier.

  ### Methods inherited from class weka.classifiers.AbstractClassifier

  `batchSizeTipText, debugTipText, distributionForInstance, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### FILTER_NORMALIZE

    public static final int FILTER_NORMALIZE
    The filter to apply to the training data: Normalzie
    See Also:
      - Constant Field Values

  - ### FILTER_STANDARDIZE

    public static final int FILTER_STANDARDIZE
    The filter to apply to the training data: Standardize
    See Also:
      - Constant Field Values

  - ### FILTER_NONE

    public static final int FILTER_NONE
    The filter to apply to the training data: None
    See Also:
      - Constant Field Values

  - ### 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:
      - `Capabilities`

  - ### 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