Skip to content

Commit 0aa5d0f

Browse files
authored
Suggested sample nits (feel free to ask for any of these to be reverted) (dotnet#219)
1 parent 3437212 commit 0aa5d0f

12 files changed

+71
-148
lines changed

src/Microsoft.ML.Auto/API/BinaryClassificationExperiment.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Microsoft.ML.Auto
1212
{
1313
public sealed class BinaryExperimentSettings : ExperimentSettings
1414
{
15-
public IProgress<RunResult<BinaryClassificationMetrics>> ProgressCallback;
15+
public IProgress<RunResult<BinaryClassificationMetrics>> ProgressHandler;
1616
public BinaryClassificationMetric OptimizingMetric = BinaryClassificationMetric.Accuracy;
1717
public BinaryClassificationTrainer[] WhitelistedTrainers;
1818
}
@@ -85,7 +85,7 @@ internal IEnumerable<RunResult<BinaryClassificationMetrics>> Execute(MLContext c
8585

8686
// run autofit & get all pipelines run in that process
8787
var experiment = new Experiment<BinaryClassificationMetrics>(context, TaskKind.BinaryClassification, trainData, columnInfo,
88-
validationData, preFeaturizers, new OptimizingMetricInfo(_settings.OptimizingMetric), _settings.ProgressCallback,
88+
validationData, preFeaturizers, new OptimizingMetricInfo(_settings.OptimizingMetric), _settings.ProgressHandler,
8989
_settings, new BinaryMetricsAgent(_settings.OptimizingMetric),
9090
TrainerExtensionUtil.GetTrainerNames(_settings.WhitelistedTrainers));
9191

src/Microsoft.ML.Auto/API/MulticlassClassificationExperiment.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Microsoft.ML.Auto
1212
{
1313
public sealed class MulticlassExperimentSettings : ExperimentSettings
1414
{
15-
public IProgress<RunResult<MultiClassClassifierMetrics>> ProgressCallback;
15+
public IProgress<RunResult<MultiClassClassifierMetrics>> ProgressHandler;
1616
public MulticlassClassificationMetric OptimizingMetric = MulticlassClassificationMetric.AccuracyMicro;
1717
public MulticlassClassificationTrainer[] WhitelistedTrainers;
1818
}
@@ -84,7 +84,7 @@ internal IEnumerable<RunResult<MultiClassClassifierMetrics>> Execute(MLContext c
8484
// run autofit & get all pipelines run in that process
8585
var experiment = new Experiment<MultiClassClassifierMetrics>(context, TaskKind.MulticlassClassification, trainData,
8686
columnInfo, validationData, preFeaturizers, new OptimizingMetricInfo(_settings.OptimizingMetric),
87-
_settings.ProgressCallback, _settings, new MultiMetricsAgent(_settings.OptimizingMetric),
87+
_settings.ProgressHandler, _settings, new MultiMetricsAgent(_settings.OptimizingMetric),
8888
TrainerExtensionUtil.GetTrainerNames(_settings.WhitelistedTrainers));
8989

9090
return experiment.Execute();

src/Microsoft.ML.Auto/API/RegressionExperiment.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Microsoft.ML.Auto
1212
{
1313
public sealed class RegressionExperimentSettings : ExperimentSettings
1414
{
15-
public IProgress<RunResult<RegressionMetrics>> ProgressCallback;
15+
public IProgress<RunResult<RegressionMetrics>> ProgressHandler;
1616
public RegressionMetric OptimizingMetric = RegressionMetric.RSquared;
1717
public RegressionTrainer[] WhitelistedTrainers;
1818
}
@@ -81,7 +81,7 @@ internal IEnumerable<RunResult<RegressionMetrics>> Execute(MLContext context,
8181
// run autofit & get all pipelines run in that process
8282
var experiment = new Experiment<RegressionMetrics>(context, TaskKind.Regression, trainData, columnInfo,
8383
validationData, preFeaturizers, new OptimizingMetricInfo(_settings.OptimizingMetric),
84-
_settings.ProgressCallback, _settings, new RegressionMetricsAgent(_settings.OptimizingMetric),
84+
_settings.ProgressHandler, _settings, new RegressionMetricsAgent(_settings.OptimizingMetric),
8585
TrainerExtensionUtil.GetTrainerNames(_settings.WhitelistedTrainers));
8686

8787
return experiment.Execute();

src/Samples/AutoTrainBinaryClassification.cs

+10-12
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6-
using System.Collections.Generic;
76
using System.IO;
8-
using System.Linq;
97
using Microsoft.Data.DataView;
108
using Microsoft.ML;
119
using Microsoft.ML.Auto;
@@ -19,40 +17,40 @@ public class AutoTrainBinaryClassification
1917
private static string TrainDataPath = $"{BaseDatasetsLocation}/wikipedia-detox-250-line-data.tsv";
2018
private static string TestDataPath = $"{BaseDatasetsLocation}/wikipedia-detox-250-line-test.tsv";
2119
private static string ModelPath = $"{BaseDatasetsLocation}/SentimentModel.zip";
22-
private static string LabelColumnName = "Sentiment";
20+
private static string LabelColumn = "Sentiment";
2321

2422
public static void Run()
2523
{
2624
MLContext mlContext = new MLContext();
2725

2826
// STEP 1: Infer columns
29-
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumnName);
27+
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumn);
3028

3129
// STEP 2: Load data
3230
TextLoader textLoader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderArgs);
3331
IDataView trainDataView = textLoader.Read(TrainDataPath);
3432
IDataView testDataView = textLoader.Read(TestDataPath);
3533

36-
// STEP 3: Auto featurize, auto train and auto hyperparameter tuning
37-
Console.WriteLine($"Invoking BinaryClassification.AutoFit");
38-
var autoFitResults = mlContext.AutoInference()
34+
// STEP 3: Auto featurize, auto train and auto hyperparameter tune
35+
Console.WriteLine($"Invoking new AutoML binary classification experiment...");
36+
var runResults = mlContext.AutoInference()
3937
.CreateBinaryClassificationExperiment(60)
40-
.Execute(trainDataView, LabelColumnName);
38+
.Execute(trainDataView, LabelColumn);
4139

4240
// STEP 4: Print metric from the best model
43-
var best = autoFitResults.Best();
41+
var best = runResults.Best();
4442
Console.WriteLine($"Accuracy of best model from validation data: {best.Metrics.Accuracy}");
4543

4644
// STEP 5: Evaluate test data
4745
IDataView testDataViewWithBestScore = best.Model.Transform(testDataView);
48-
var testMetrics = mlContext.BinaryClassification.EvaluateNonCalibrated(testDataViewWithBestScore, label: LabelColumnName, DefaultColumnNames.Score);
49-
Console.WriteLine($"Accuracy of best model from test data: {best.Metrics.Accuracy}");
46+
var testMetrics = mlContext.BinaryClassification.EvaluateNonCalibrated(testDataViewWithBestScore, label: LabelColumn);
47+
Console.WriteLine($"Accuracy of best model on test data: {best.Metrics.Accuracy}");
5048

5149
// STEP 6: Save the best model for later deployment and inferencing
5250
using (var fs = File.Create(ModelPath))
5351
best.Model.SaveTo(mlContext, fs);
5452

55-
Console.WriteLine("Press any key to continue..");
53+
Console.WriteLine("Press any key to continue...");
5654
Console.ReadLine();
5755
}
5856
}

src/Samples/AutoTrainMulticlassClassification.cs

+8-11
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6-
using System.Collections.Generic;
76
using System.IO;
8-
using System.Linq;
97
using Microsoft.Data.DataView;
108
using Microsoft.ML;
119
using Microsoft.ML.Auto;
@@ -19,40 +17,39 @@ public class AutoTrainMulticlassClassification
1917
private static string TrainDataPath = $"{BaseDatasetsLocation}/iris-train.txt";
2018
private static string TestDataPath = $"{BaseDatasetsLocation}/iris-test.txt";
2119
private static string ModelPath = $"{BaseDatasetsLocation}/IrisClassificationModel.zip";
22-
private static string LabelColumnName = "Label";
2320

2421
public static void Run()
2522
{
2623
MLContext mlContext = new MLContext();
2724

2825
// STEP 1: Infer columns
29-
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumnName);
26+
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath);
3027

3128
// STEP 2: Load data
3229
TextLoader textLoader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderArgs);
3330
IDataView trainDataView = textLoader.Read(TrainDataPath);
3431
IDataView testDataView = textLoader.Read(TestDataPath);
3532

36-
// STEP 3: Auto featurize, auto train and auto hyperparameter tuning
37-
Console.WriteLine($"Invoking MulticlassClassification.AutoFit");
38-
var autoFitResults = mlContext.AutoInference()
33+
// STEP 3: Auto featurize, auto train and auto hyperparameter tune
34+
Console.WriteLine($"Invoking new AutoML multiclass classification experiment...");
35+
var runResults = mlContext.AutoInference()
3936
.CreateMulticlassClassificationExperiment(60)
4037
.Execute(trainDataView);
4138

4239
// STEP 4: Print metric from the best model
43-
var best = autoFitResults.Best();
40+
var best = runResults.Best();
4441
Console.WriteLine($"AccuracyMacro of best model from validation data: {best.Metrics.AccuracyMacro}");
4542

4643
// STEP 5: Evaluate test data
4744
IDataView testDataViewWithBestScore = best.Model.Transform(testDataView);
48-
var testMetrics = mlContext.MulticlassClassification.Evaluate(testDataViewWithBestScore, label: LabelColumnName, DefaultColumnNames.Score);
49-
Console.WriteLine($"AccuracyMacro of best model from test data: {best.Metrics.AccuracyMacro}");
45+
var testMetrics = mlContext.MulticlassClassification.Evaluate(testDataViewWithBestScore);
46+
Console.WriteLine($"AccuracyMacro of best model on test data: {best.Metrics.AccuracyMacro}");
5047

5148
// STEP 6: Save the best model for later deployment and inferencing
5249
using (var fs = File.Create(ModelPath))
5350
best.Model.SaveTo(mlContext, fs);
5451

55-
Console.WriteLine("Press any key to continue..");
52+
Console.WriteLine("Press any key to continue...");
5653
Console.ReadLine();
5754
}
5855
}

src/Samples/AutoTrainRegression.cs

+12-14
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6-
using System.Collections.Generic;
76
using System.IO;
8-
using System.Linq;
97
using Microsoft.Data.DataView;
108
using Microsoft.ML;
119
using Microsoft.ML.Auto;
@@ -19,40 +17,40 @@ static class AutoTrainRegression
1917
private static string TrainDataPath = $"{BaseDatasetsLocation}/taxi-fare-train.csv";
2018
private static string TestDataPath = $"{BaseDatasetsLocation}/taxi-fare-test.csv";
2119
private static string ModelPath = $"{BaseDatasetsLocation}/TaxiFareModel.zip";
22-
private static string LabelColumnName = "fare_amount";
20+
private static string LabelColumn = "fare_amount";
2321

2422
public static void Run()
2523
{
2624
MLContext mlContext = new MLContext();
2725

28-
// STEP 1: Common data loading configuration
29-
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumnName);
26+
// STEP 1: Infer columns
27+
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumn);
3028

3129
// STEP 2: Load data
3230
TextLoader textLoader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderArgs);
3331
IDataView trainDataView = textLoader.Read(TrainDataPath);
3432
IDataView testDataView = textLoader.Read(TestDataPath);
3533

36-
// STEP 3: Auto featurize, auto train and auto hyperparameter tuning
37-
Console.WriteLine($"Invoking Regression.AutoFit");
38-
var autoFitResults = mlContext.AutoInference()
34+
// STEP 3: Auto featurize, auto train and auto hyperparameter tune
35+
Console.WriteLine($"Invoking new AutoML regression experiment...");
36+
var runResults = mlContext.AutoInference()
3937
.CreateRegressionExperiment(0)
40-
.Execute(trainDataView, LabelColumnName);
38+
.Execute(trainDataView, LabelColumn);
4139

42-
// STEP 4: Compare and print actual value vs predicted value for top 5 rows from validation data
43-
var best = autoFitResults.Best();
40+
// STEP 4: Print metric from best model
41+
var best = runResults.Best();
4442
Console.WriteLine($"RSquared of best model from validation data: {best.Metrics.RSquared}");
4543

4644
// STEP 5: Evaluate test data
4745
IDataView testDataViewWithBestScore = best.Model.Transform(testDataView);
48-
var testMetrics = mlContext.Regression.Evaluate(testDataViewWithBestScore, label: LabelColumnName, DefaultColumnNames.Score);
49-
Console.WriteLine($"RSquared of best model from test data: {best.Metrics.RSquared}");
46+
var testMetrics = mlContext.Regression.Evaluate(testDataViewWithBestScore, label: LabelColumn);
47+
Console.WriteLine($"RSquared of best model on test data: {best.Metrics.RSquared}");
5048

5149
// STEP 6: Save the best model for later deployment and inferencing
5250
using (var fs = File.Create(ModelPath))
5351
best.Model.SaveTo(mlContext, fs);
5452

55-
Console.WriteLine("Press any key to continue..");
53+
Console.WriteLine("Press any key to continue...");
5654
Console.ReadLine();
5755
}
5856
}

src/Samples/Cancellation.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ static class Cancellation
1919
private static string TrainDataPath = $"{BaseDatasetsLocation}/taxi-fare-train.csv";
2020
private static string TestDataPath = $"{BaseDatasetsLocation}/taxi-fare-test.csv";
2121
private static string ModelPath = $"{BaseDatasetsLocation}/TaxiFareModel.zip";
22-
private static string LabelColumnName = "fare_amount";
22+
private static string LabelColumn = "fare_amount";
2323

2424
public static void Run()
2525
{
2626
MLContext mlContext = new MLContext();
2727

2828
// STEP 1: Infer columns
29-
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumnName, ',');
29+
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumn, ',');
3030

3131
// STEP 2: Load data
3232
TextLoader textLoader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderArgs);
@@ -39,19 +39,19 @@ public static void Run()
3939

4040
Stopwatch watch = Stopwatch.StartNew();
4141

42-
// STEP 3: Autofit with a cancellation token
43-
Console.WriteLine($"Invoking Regression.AutoFit");
44-
var autoFitResults = mlContext.AutoInference()
42+
// STEP 3: Auto inference with a cancellation token
43+
Console.WriteLine($"Invoking new AutoML regression experiment...");
44+
var runResults = mlContext.AutoInference()
4545
.CreateRegressionExperiment(new RegressionExperimentSettings()
4646
{
4747
MaxInferenceTimeInSeconds = 60,
4848
CancellationToken = cts.Token
4949
})
50-
.Execute(trainDataView, LabelColumnName);
50+
.Execute(trainDataView, LabelColumn);
5151

52-
Console.WriteLine($"{autoFitResults.Count()} models were returned after {cancelAfterInSeconds} seconds");
52+
Console.WriteLine($"{runResults.Count()} models were returned after {cancelAfterInSeconds} seconds");
5353

54-
Console.WriteLine("Press any key to continue..");
54+
Console.WriteLine("Press any key to continue...");
5555
Console.ReadLine();
5656
}
5757
}

src/Samples/CustomizeTraining.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,31 @@ static class CustomizeTraining
1616
private static string TrainDataPath = $"{BaseDatasetsLocation}/taxi-fare-train.csv";
1717
private static string TestDataPath = $"{BaseDatasetsLocation}/taxi-fare-test.csv";
1818
private static string ModelPath = $"{BaseDatasetsLocation}/TaxiFareModel.zip";
19-
private static string LabelColumnName = "fare_amount";
19+
private static string LabelColumn = "fare_amount";
2020

2121
public static void Run()
2222
{
2323
MLContext mlContext = new MLContext();
2424

2525
// STEP 1: Infer columns
26-
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumnName, ',');
26+
var columnInference = mlContext.AutoInference().InferColumns(TrainDataPath, LabelColumn, ',');
2727

2828
// STEP 2: Load data
2929
TextLoader textLoader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderArgs);
3030
IDataView trainDataView = textLoader.Read(TrainDataPath);
3131
IDataView testDataView = textLoader.Read(TestDataPath);
3232

33-
// STEP 3: Autofit with a callback configured
34-
var autoFitExperiment = mlContext.AutoInference().CreateRegressionExperiment(new RegressionExperimentSettings()
33+
// STEP 3: Auto inference with a callback configured
34+
var autoExperiment = mlContext.AutoInference().CreateRegressionExperiment(new RegressionExperimentSettings()
3535
{
3636
MaxInferenceTimeInSeconds = 20,
3737
OptimizingMetric = RegressionMetric.L2,
3838
WhitelistedTrainers = new[] { RegressionTrainer.LightGbm },
39-
ProgressCallback = new Progress()
39+
ProgressHandler = new ProgressHandler()
4040
});
41-
autoFitExperiment.Execute(trainDataView, LabelColumnName);
41+
autoExperiment.Execute(trainDataView, LabelColumn);
4242

43-
Console.WriteLine("Press any key to continue..");
43+
Console.WriteLine("Press any key to continue...");
4444
Console.ReadLine();
4545
}
4646
}

0 commit comments

Comments
 (0)