public class KernelSVMTrainer extends Object implements Trainer<Label>, WeightedExamples
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.
DEFAULT_SEED
Constructor and 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.
|
Modifier and Type | Method and Description |
---|---|
int |
getInvocationCount()
The number of times this trainer instance has had it's train method invoked.
|
TrainerProvenance |
getProvenance() |
void |
postConfig()
Used by the OLCUT configuration system, and should not be called by external code.
|
void |
setShuffle(boolean shuffle)
Turn on or off shuffling of examples.
|
String |
toString() |
KernelSVMModel |
train(Dataset<Label> examples,
Map<String,com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance)
Trains a predictive model using the examples in the given data set.
|
public KernelSVMTrainer(Kernel kernel, double lambda, int epochs, int loggingInterval, long seed)
kernel
- The kernel function to use as a similarity measure.epochs
- The number of epochs (complete passes through the training data).lambda
- l2 regulariser on the support vectors.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.public KernelSVMTrainer(Kernel kernel, double lambda, int epochs, long seed)
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.public void postConfig()
postConfig
in interface com.oracle.labs.mlrg.olcut.config.Configurable
public void setShuffle(boolean shuffle)
This isn't exposed in the constructor as it defaults to on. This method should only be used for debugging.
shuffle
- If true shuffle the examples, if false leave them in their current order.public KernelSVMModel train(Dataset<Label> examples, Map<String,com.oracle.labs.mlrg.olcut.provenance.Provenance> runProvenance)
Trainer
public int getInvocationCount()
Trainer
This is used to determine how many times the trainer's RNG has been accessed to ensure replicability in the random number stream.
getInvocationCount
in interface Trainer<Label>
public TrainerProvenance getProvenance()
getProvenance
in interface com.oracle.labs.mlrg.olcut.provenance.Provenancable<TrainerProvenance>
Copyright © 2015–2021 Oracle and/or its affiliates. All rights reserved.