Class KernelSVMTrainer

java.lang.Object
org.tribuo.classification.sgd.kernel.KernelSVMTrainer
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.config.Configurable, com.oracle.labs.mlrg.olcut.provenance.Provenancable<org.tribuo.provenance.TrainerProvenance>, org.tribuo.Trainer<Label>, org.tribuo.WeightedExamples

public class KernelSVMTrainer extends Object implements org.tribuo.Trainer<Label>, org.tribuo.WeightedExamples
A trainer for a kernelised model using the Pegasos optimiser.

The Pegasos optimiser is extremely sensitive to the lambda parameter, and this value must be tuned to get good performance.

See:

 Shalev-Shwartz S, Singer Y, Srebro N, Cotter A
 "Pegasos: Primal Estimated Sub-Gradient Solver for SVM"
 Mathematical Programming, 2011.
 
  • Field Summary

    Fields inherited from interface org.tribuo.Trainer

    DEFAULT_SEED, INCREMENT_INVOCATION_COUNT
  • Constructor Summary

    Constructors
    Constructor
    Description
    KernelSVMTrainer(Kernel kernel, double lambda, int epochs, int loggingInterval, long seed)
    Constructs a trainer for a kernel SVM model.
    KernelSVMTrainer(Kernel kernel, double lambda, int epochs, long seed)
    Constructs a trainer for a kernel SVM model.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    org.tribuo.provenance.TrainerProvenance
     
    void
    Used by the OLCUT configuration system, and should not be called by external code.
    void
    setInvocationCount(int invocationCount)
     
    void
    setShuffle(boolean shuffle)
    Turn on or off shuffling of examples.
     
    train(org.tribuo.Dataset<Label> examples, Map<String, com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance)
     
    train(org.tribuo.Dataset<Label> examples, Map<String, com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance, int invocationCount)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.tribuo.Trainer

    train
  • Constructor Details

    • KernelSVMTrainer

      public KernelSVMTrainer(Kernel kernel, double lambda, int epochs, int loggingInterval, long seed)
      Constructs a trainer for a kernel SVM model.
      Parameters:
      kernel - The kernel function to use as a similarity measure.
      lambda - l2 regulariser on the support vectors.
      epochs - The number of epochs (complete passes through the training data).
      loggingInterval - Log the loss after this many iterations. If -1 don't log anything.
      seed - A seed for the random number generator, used to shuffle the examples before each epoch.
    • KernelSVMTrainer

      public KernelSVMTrainer(Kernel kernel, double lambda, int epochs, long seed)
      Constructs a trainer for a kernel SVM model. Sets the logging interval to 1000.
      Parameters:
      kernel - The kernel function to use as a similarity measure.
      lambda - l2 regulariser on the support vectors.
      epochs - The number of epochs (complete passes through the training data).
      seed - A seed for the random number generator, used to shuffle the examples before each epoch.
  • Method Details

    • postConfig

      public void postConfig()
      Used by the OLCUT configuration system, and should not be called by external code.
      Specified by:
      postConfig in interface com.oracle.labs.mlrg.olcut.config.Configurable
    • setShuffle

      public void setShuffle(boolean shuffle)
      Turn on or off shuffling of examples.

      This isn't exposed in the constructor as it defaults to on. This method should only be used for debugging.

      Parameters:
      shuffle - If true shuffle the examples, if false leave them in their current order.
    • train

      public KernelSVMModel train(org.tribuo.Dataset<Label> examples, Map<String, com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance)
      Specified by:
      train in interface org.tribuo.Trainer<Label>
    • train

      public KernelSVMModel train(org.tribuo.Dataset<Label> examples, Map<String, com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance, int invocationCount)
      Specified by:
      train in interface org.tribuo.Trainer<Label>
    • getInvocationCount

      public int getInvocationCount()
      Specified by:
      getInvocationCount in interface org.tribuo.Trainer<Label>
    • setInvocationCount

      public void setInvocationCount(int invocationCount)
      Specified by:
      setInvocationCount in interface org.tribuo.Trainer<Label>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getProvenance

      public org.tribuo.provenance.TrainerProvenance getProvenance()
      Specified by:
      getProvenance in interface com.oracle.labs.mlrg.olcut.provenance.Provenancable<org.tribuo.provenance.TrainerProvenance>