FieldAwareFactorizationMachine is good for large dataset like the Criteo 1TB dataset.
Currently FieldAwareFactorizationMachine is not swept over in AutoML.
Task:
- Add trainer to default list of binary learners to try
- Add sweep range
- Add to CLI's C# CodeGen
Should be easy to just replicate an existing trainer like SDCA:
|
internal class SdcaLogisticRegressionBinaryExtension : ITrainerExtension |
|
{ |
|
public IEnumerable<SweepableParam> GetHyperparamSweepRanges() |
|
{ |
|
return SweepableParams.BuildSdcaParams(); |
|
} |
|
|
|
public ITrainerEstimator CreateInstance(MLContext mlContext, IEnumerable<SweepableParam> sweepParams, |
|
ColumnInformation columnInfo) |
|
{ |
|
var options = TrainerExtensionUtil.CreateOptions<SdcaLogisticRegressionBinaryTrainer.Options>(sweepParams, columnInfo.LabelColumnName); |
|
return mlContext.BinaryClassification.Trainers.SdcaLogisticRegression(options); |
|
} |
|
|
|
public PipelineNode CreatePipelineNode(IEnumerable<SweepableParam> sweepParams, ColumnInformation columnInfo) |
|
{ |
|
return TrainerExtensionUtil.BuildPipelineNode(TrainerExtensionCatalog.GetTrainerName(this), sweepParams, |
|
columnInfo.LabelColumnName); |
|
} |
|
} |
FieldAwareFactorizationMachine is good for large dataset like the Criteo 1TB dataset.
Currently FieldAwareFactorizationMachine is not swept over in AutoML.
Task:
Should be easy to just replicate an existing trainer like SDCA:
machinelearning/src/Microsoft.ML.AutoML/TrainerExtensions/BinaryTrainerExtensions.cs
Lines 150 to 169 in d518b58