Skip to content

Commit b322082

Browse files
committed
best --> bestRun variable name change; print multiclass metrics
1 parent c5a8d9e commit b322082

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

docs/samples/Microsoft.ML.AutoML.Samples/MulticlassClassificationExperiment.cs

+20-7
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,24 @@ public static void Run()
3030
.Execute(trainDataView, LabelColumnName);
3131

3232
// STEP 3: Print metric from the best model
33-
RunDetail<MulticlassClassificationMetrics> best = experimentResult.BestRun;
33+
RunDetail<MulticlassClassificationMetrics> bestRun = experimentResult.BestRun;
3434
Console.WriteLine($"Total models produced: {experimentResult.RunDetails.Count()}");
35-
Console.WriteLine($"Best model's trainer: {best.TrainerName}");
36-
Console.WriteLine($"MicroAccuracy of best model from validation data: {best.ValidationMetrics.MicroAccuracy}");
35+
Console.WriteLine($"Best model's trainer: {bestRun.TrainerName}");
36+
Console.WriteLine($"Metrics of best model from validation data --");
37+
PrintMetrics(bestRun.ValidationMetrics);
3738

3839
// STEP 4: Evaluate test data
39-
IDataView testDataViewWithBestScore = best.Model.Transform(testDataView);
40+
IDataView testDataViewWithBestScore = bestRun.Model.Transform(testDataView);
4041
MulticlassClassificationMetrics testMetrics = mlContext.MulticlassClassification.Evaluate(testDataViewWithBestScore, labelColumnName: LabelColumnName);
41-
Console.WriteLine($"MicroAccuracy of best model on test data: {testMetrics.MicroAccuracy}");
42+
Console.WriteLine($"MicroAccuracy of best model on test data");
43+
PrintMetrics(testMetrics);
4244

4345
// STEP 5: Save the best model for later deployment and inferencing
4446
using (FileStream fs = File.Create(ModelPath))
45-
mlContext.Model.Save(best.Model, trainDataView.Schema, fs);
47+
mlContext.Model.Save(bestRun.Model, trainDataView.Schema, fs);
4648

4749
// STEP 6: Create prediction engine from the best trained model
48-
var predictionEngine = mlContext.Model.CreatePredictionEngine<PixelData, PixelPrediction>(best.Model);
50+
var predictionEngine = mlContext.Model.CreatePredictionEngine<PixelData, PixelPrediction>(bestRun.Model);
4951

5052
// STEP 7: Initialize new pixel data, and get the predicted number
5153
var testPixelData = new PixelData
@@ -58,5 +60,16 @@ public static void Run()
5860
Console.WriteLine("Press any key to continue...");
5961
Console.ReadKey();
6062
}
63+
64+
private static void PrintMetrics(MulticlassClassificationMetrics metrics)
65+
{
66+
Console.WriteLine($"LogLoss: {metrics.LogLoss}");
67+
Console.WriteLine($"LogLossReduction: {metrics.LogLossReduction}");
68+
Console.WriteLine($"MacroAccuracy: {metrics.MacroAccuracy}");
69+
Console.WriteLine($"MicroAccuracy: {metrics.MicroAccuracy}");
70+
Console.WriteLine($"PerClassLogLoss: {metrics.PerClassLogLoss}");
71+
Console.WriteLine($"TopKAccuracy: {metrics.TopKAccuracy}");
72+
Console.WriteLine($"TopKPredictionCount: {metrics.TopKPredictionCount}");
73+
}
6174
}
6275
}

docs/samples/Microsoft.ML.AutoML.Samples/RegressionExperiment.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,22 @@ public static void Run()
3232
.Execute(trainDataView, LabelColumnName);
3333

3434
// STEP 3: Print metric from best model
35-
RunDetail<RegressionMetrics> best = experimentResult.BestRun;
35+
RunDetail<RegressionMetrics> bestRun = experimentResult.BestRun;
3636
Console.WriteLine($"Total models produced: {experimentResult.RunDetails.Count()}");
37-
Console.WriteLine($"Best model's trainer: {best.TrainerName}");
38-
Console.WriteLine($"RSquared of best model from validation data: {best.ValidationMetrics.RSquared}");
37+
Console.WriteLine($"Best model's trainer: {bestRun.TrainerName}");
38+
Console.WriteLine($"RSquared of best model from validation data: {bestRun.ValidationMetrics.RSquared}");
3939

4040
// STEP 5: Evaluate test data
41-
IDataView testDataViewWithBestScore = best.Model.Transform(testDataView);
41+
IDataView testDataViewWithBestScore = bestRun.Model.Transform(testDataView);
4242
RegressionMetrics testMetrics = mlContext.Regression.Evaluate(testDataViewWithBestScore, labelColumnName: LabelColumnName);
4343
Console.WriteLine($"RSquared of best model on test data: {testMetrics.RSquared}");
4444

4545
// STEP 6: Save the best model for later deployment and inferencing
4646
using (FileStream fs = File.Create(ModelPath))
47-
mlContext.Model.Save(best.Model, trainDataView.Schema, fs);
47+
mlContext.Model.Save(bestRun.Model, trainDataView.Schema, fs);
4848

4949
// STEP 7: Create prediction engine from the best trained model
50-
var predictionEngine = mlContext.Model.CreatePredictionEngine<TaxiTrip, TaxiTripFarePrediction>(best.Model);
50+
var predictionEngine = mlContext.Model.CreatePredictionEngine<TaxiTrip, TaxiTripFarePrediction>(bestRun.Model);
5151

5252
// STEP 8: Initialize a new test taxi trip, and get the predicted fare
5353
var testTaxiTrip = new TaxiTrip

0 commit comments

Comments
 (0)