Class SPegasos

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.functions.SPegasos
All Implemented Interfaces:
Serializable, Cloneable, UpdateableClassifier, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler

Implements the stochastic variant of the Pegasos (Primal Estimated sub-GrAdient SOlver for SVM) method of Shalev-Shwartz et al. (2007). This implementation globally replaces all missing values and transforms nominal attributes into binary ones. It also normalizes all attributes, so the coefficients in the output are based on the normalized data. For more information, see

S. Shalev-Shwartz, Y. Singer, N. Srebro: Pegasos: Primal Estimated sub-GrAdient SOlver for SVM. In: 24th International Conference on MachineLearning, 807-814, 2007.

BibTeX:

 @inproceedings{Shalev-Shwartz2007,
    author = {S. Shalev-Shwartz and Y. Singer and N. Srebro},
    booktitle = {24th International Conference on MachineLearning},
    pages = {807-814},
    title = {Pegasos: Primal Estimated sub-GrAdient SOlver for SVM},
    year = {2007}
 }
 

Valid options are:

 -L <double>
  The lambda regularization constant (default = 0.0001)
 -E <integer>
  The number of epochs to perform (batch learning only, default = 500)
 -N
  Don't normalize the data
 -M
  Don't replace missing values
Version:
$Revision: 6580 $
Author:
Mark Hall (mhall{[at]}pentaho{[dot]}com)
See Also:
  • Field Details

    • TAGS_SELECTION

      public static final Tag[] TAGS_SELECTION
      Loss functions to choose from
  • Constructor Details

    • SPegasos

      public SPegasos()
  • Method Details

    • getCapabilities

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

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

      public void setLambda(double lambda)
      Set the value of lambda to use
      Parameters:
      lambda - the value of lambda to use
    • getLambda

      public double getLambda()
      Get the current value of lambda
      Returns:
      the current value of lambda
    • epochsTipText

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

      public void setEpochs(int e)
      Set the number of epochs to use
      Parameters:
      e - the number of epochs to use
    • getEpochs

      public int getEpochs()
      Get current number of epochs
      Returns:
      the current number of epochs
    • setDontNormalize

      public void setDontNormalize(boolean m)
      Turn normalization off/on.
      Parameters:
      m - true if normalization is to be disabled.
    • getDontNormalize

      public boolean getDontNormalize()
      Get whether normalization has been turned off.
      Returns:
      true if normalization has been disabled.
    • dontNormalizeTipText

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

      public void setDontReplaceMissing(boolean m)
      Turn global replacement of missing values off/on. If turned off, then missing values are effectively ignored.
      Parameters:
      m - true if global replacement of missing values is to be turned off.
    • getDontReplaceMissing

      public boolean getDontReplaceMissing()
      Get whether global replacement of missing values has been disabled.
      Returns:
      true if global replacement of missing values has been turned off
    • dontReplaceMissingTipText

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

      public void setLossFunction(SelectedTag function)
      Set the loss function to use.
      Parameters:
      function - the loss function to use.
    • getLossFunction

      public SelectedTag getLossFunction()
      Get the current loss function.
      Returns:
      the current loss function.
    • lossFunctionTipText

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

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

       -L <double>
        The lambda regularization constant (default = 0.0001)
       -E <integer>
        The number of epochs to perform (batch learning only, default = 500)
       -N
        Don't normalize the data
       -M
        Don't replace missing values
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class Classifier
      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 Classifier
      Returns:
      an array of strings suitable for passing to setOptions
    • 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
    • reset

      public void reset()
      Reset the classifier.
    • buildClassifier

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

      public void updateClassifier(Instance instance) throws Exception
      Updates the classifier with the given instance.
      Specified by:
      updateClassifier in interface UpdateableClassifier
      Parameters:
      instance - the new training instance to include in the model
      Throws:
      Exception - if the instance could not be incorporated in the model.
    • distributionForInstance

      public double[] distributionForInstance(Instance inst) throws Exception
      Computes the distribution for a given instance
      Overrides:
      distributionForInstance in class Classifier
      Parameters:
      instance - the instance for which distribution is computed
      Returns:
      the distribution
      Throws:
      Exception - if the distribution can't be computed successfully
    • toString

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

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

      public static void main(String[] args)
      Main method for testing this class.