public override float Predict(Sample sample) { var convertedSample = new [] { ModelTrainer.ConvertToMlSample(sample) }; var sampleView = _context.Data.LoadFromEnumerable(convertedSample); var res = _model.Transform(sampleView); return(res.GetColumn <float>("Score").First()); }
public static void AutoMlOnDataset(MLContext context, TrainingData train, TrainingData validation) { var regExpSettings = new RegressionExperimentSettings { MaxExperimentTimeInSeconds = 60 * 5, OptimizingMetric = RegressionMetric.MeanAbsoluteError, CacheDirectory = null, }; var experiment = context.Auto().CreateRegressionExperiment(regExpSettings); IProgress <RunDetail <RegressionMetrics> > progressHandler = new Handler(); //ModelTrainer.ToDataView(context, validation) var experimentResults = experiment.Execute(ModelTrainer.ToDataView(context, train), progressHandler: progressHandler); foreach (var res in experimentResults.RunDetails) { if (res.TrainerName != null && res.ValidationMetrics != null) { Console.WriteLine($"Trainer={res.TrainerName}; MAE={res.ValidationMetrics.MeanAbsoluteError}"); } } var best = experimentResults.BestRun; Console.WriteLine($"Lé best trainer is {best.TrainerName} with MAE={best.ValidationMetrics.MeanAbsoluteError}"); }