Package org.tribuo.regression.sgd.fm
Class FMRegressionTrainer
java.lang.Object
org.tribuo.common.sgd.AbstractSGDTrainer<T,U,V,FMParameters>
org.tribuo.common.sgd.AbstractFMTrainer<Regressor,DenseVector,FMRegressionModel>
org.tribuo.regression.sgd.fm.FMRegressionTrainer
- All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.config.Configurable
,com.oracle.labs.mlrg.olcut.provenance.Provenancable<TrainerProvenance>
,Trainer<Regressor>
,WeightedExamples
A trainer for a regression factorization machine using SGD.
Independently trains each output dimension, unless they are tied together in the
optimiser.
See:
Rendle, S. Factorization machines. 2010 IEEE International Conference on Data Mining
-
Field Summary
Fields inherited from class org.tribuo.common.sgd.AbstractFMTrainer
factorizedDimSize, variance
Fields inherited from class org.tribuo.common.sgd.AbstractSGDTrainer
addBias, epochs, loggingInterval, minibatchSize, optimiser, rng, seed, shuffle
Fields inherited from interface org.tribuo.Trainer
DEFAULT_SEED, INCREMENT_INVOCATION_COUNT
-
Constructor Summary
ConstructorDescriptionFMRegressionTrainer
(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, int loggingInterval, int minibatchSize, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine.FMRegressionTrainer
(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, int loggingInterval, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine.FMRegressionTrainer
(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine. -
Method Summary
Modifier and TypeMethodDescriptionprotected FMRegressionModel
createModel
(String name, ModelProvenance provenance, ImmutableFeatureMap featureMap, ImmutableOutputInfo<Regressor> outputInfo, FMParameters parameters) Creates the appropriate model subclass for this subclass of AbstractSGDTrainer.protected String
Returns the class name of the model that's produced by this trainer.protected SGDObjective<DenseVector>
Returns the objective used by this trainer.protected DenseVector
getTarget
(ImmutableOutputInfo<Regressor> outputInfo, Regressor output) Extracts the appropriate training time representation from the supplied output.toString()
Methods inherited from class org.tribuo.common.sgd.AbstractFMTrainer
createParameters, getName, postConfig
Methods inherited from class org.tribuo.common.sgd.AbstractSGDTrainer
getInvocationCount, getProvenance, setInvocationCount, setShuffle, shuffleInPlace, train, train, train
-
Constructor Details
-
FMRegressionTrainer
public FMRegressionTrainer(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, int loggingInterval, int minibatchSize, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine.- Parameters:
objective
- The objective function to optimise.optimiser
- The gradient optimiser to use.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.minibatchSize
- The size of any minibatches.seed
- A seed for the random number generator, used to shuffle the examples before each epoch.factorizedDimSize
- Size of the factorized feature representation.variance
- The variance of the initializer.standardise
- Standardise the output regressors before fitting the model.
-
FMRegressionTrainer
public FMRegressionTrainer(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, int loggingInterval, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine.Sets the minibatch size to 1.
- Parameters:
objective
- The objective function to optimise.optimiser
- The gradient optimiser to use.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.factorizedDimSize
- Size of the factorized feature representation.variance
- The variance of the initializer.standardise
- Standardise the output regressors before fitting the model.
-
FMRegressionTrainer
public FMRegressionTrainer(RegressionObjective objective, StochasticGradientOptimiser optimiser, int epochs, long seed, int factorizedDimSize, double variance, boolean standardise) Constructs an SGD trainer for a factorization machine.Sets the minibatch size to 1 and the logging interval to 1000.
- Parameters:
objective
- The objective function to optimise.optimiser
- The gradient optimiser to use.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.factorizedDimSize
- Size of the factorized feature representation.variance
- The variance of the initializer.standardise
- Standardise the output regressors before fitting the model.
-
-
Method Details
-
getTarget
Description copied from class:AbstractSGDTrainer
Extracts the appropriate training time representation from the supplied output.- Specified by:
getTarget
in classAbstractSGDTrainer<Regressor,
DenseVector, FMRegressionModel, FMParameters> - Parameters:
outputInfo
- The output info to use.output
- The output to extract.- Returns:
- The training time representation of the output.
-
getObjective
Description copied from class:AbstractSGDTrainer
Returns the objective used by this trainer.- Specified by:
getObjective
in classAbstractSGDTrainer<Regressor,
DenseVector, FMRegressionModel, FMParameters> - Returns:
- The SGDObjective used by this trainer.
-
createModel
protected FMRegressionModel createModel(String name, ModelProvenance provenance, ImmutableFeatureMap featureMap, ImmutableOutputInfo<Regressor> outputInfo, FMParameters parameters) Description copied from class:AbstractSGDTrainer
Creates the appropriate model subclass for this subclass of AbstractSGDTrainer.- Specified by:
createModel
in classAbstractSGDTrainer<Regressor,
DenseVector, FMRegressionModel, FMParameters> - Parameters:
name
- The model name.provenance
- The model provenance.featureMap
- The feature map.outputInfo
- The output info.parameters
- The model parameters.- Returns:
- A new instance of the appropriate subclass of
Model
.
-
getModelClassName
Description copied from class:AbstractSGDTrainer
Returns the class name of the model that's produced by this trainer.- Specified by:
getModelClassName
in classAbstractSGDTrainer<Regressor,
DenseVector, FMRegressionModel, FMParameters> - Returns:
- The model class name;
-
toString
-