From 762750d4ea77b74c3ecd0cf9c3dde1be006330bb Mon Sep 17 00:00:00 2001 From: Zeeshan Siddiqui Date: Tue, 9 Apr 2019 10:15:34 -0700 Subject: [PATCH 1/3] Fix SDCA sample runtime exception. --- .../BinaryClassification/StochasticDualCoordinateAscent.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs index d4a366ceb1..e4d4cb07e9 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs @@ -47,12 +47,12 @@ public static void Example() // Featurize the text column through the FeaturizeText API. // Then append a binary classifier, setting the "Label" column as the label of the dataset, and // the "Features" column produced by FeaturizeText as the features column. - var pipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features") + var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) // Add a data-cache step within a pipeline. .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated(labelColumnName: "Sentiment", featureColumnName: "Features", l2Regularization: 0.001f)); // Step 3: Run Cross-Validation on this pipeline. - var cvResults = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumnName: "Sentiment"); + var cvResults = mlContext.BinaryClassification.CrossValidateNonCalibrated(data, pipeline, labelColumnName: "Sentiment"); var accuracies = cvResults.Select(r => r.Metrics.Accuracy); Console.WriteLine(accuracies.Average()); @@ -69,7 +69,7 @@ public static void Example() })); // Run Cross-Validation on this second pipeline. - var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumnName: "Sentiment", numberOfFolds: 3); + var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidateNonCalibrated(data, pipeline, labelColumnName: "Sentiment", numberOfFolds: 3); accuracies = cvResults_advancedPipeline.Select(r => r.Metrics.Accuracy); Console.WriteLine(accuracies.Average()); From 44e01d0e1dac00115447032c2fa60452d86a3eb5 Mon Sep 17 00:00:00 2001 From: Zeeshan Siddiqui Date: Tue, 9 Apr 2019 10:31:38 -0700 Subject: [PATCH 2/3] PR feedback. --- .../BinaryClassification/StochasticDualCoordinateAscent.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs index e4d4cb07e9..fd20473c88 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs @@ -49,10 +49,10 @@ public static void Example() // the "Features" column produced by FeaturizeText as the features column. var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) // Add a data-cache step within a pipeline. - .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated(labelColumnName: "Sentiment", featureColumnName: "Features", l2Regularization: 0.001f)); + .Append(mlContext.BinaryClassification.Trainers.SdcaLogisticRegression(labelColumnName: "Sentiment", featureColumnName: "Features", l2Regularization: 0.001f)); // Step 3: Run Cross-Validation on this pipeline. - var cvResults = mlContext.BinaryClassification.CrossValidateNonCalibrated(data, pipeline, labelColumnName: "Sentiment"); + var cvResults = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumnName: "Sentiment"); var accuracies = cvResults.Select(r => r.Metrics.Accuracy); Console.WriteLine(accuracies.Average()); @@ -69,7 +69,7 @@ public static void Example() })); // Run Cross-Validation on this second pipeline. - var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidateNonCalibrated(data, pipeline, labelColumnName: "Sentiment", numberOfFolds: 3); + var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumnName: "Sentiment", numberOfFolds: 3); accuracies = cvResults_advancedPipeline.Select(r => r.Metrics.Accuracy); Console.WriteLine(accuracies.Average()); From 38a75f433e62110713fe5a775142c2ad9127f57e Mon Sep 17 00:00:00 2001 From: Zeeshan Siddiqui Date: Tue, 9 Apr 2019 10:36:19 -0700 Subject: [PATCH 3/3] More fixes. --- .../BinaryClassification/StochasticDualCoordinateAscent.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs index fd20473c88..5210996cd2 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs @@ -59,7 +59,7 @@ public static void Example() // If we wanted to specify more advanced parameters for the algorithm, // we could do so by tweaking the 'advancedSetting'. - var advancedPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features") + var advancedPipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .Append(mlContext.BinaryClassification.Trainers.SdcaLogisticRegression( new SdcaLogisticRegressionBinaryTrainer.Options { LabelColumnName = "Sentiment", @@ -69,7 +69,7 @@ public static void Example() })); // Run Cross-Validation on this second pipeline. - var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumnName: "Sentiment", numberOfFolds: 3); + var cvResults_advancedPipeline = mlContext.BinaryClassification.CrossValidate(data, advancedPipeline, labelColumnName: "Sentiment", numberOfFolds: 3); accuracies = cvResults_advancedPipeline.Select(r => r.Metrics.Accuracy); Console.WriteLine(accuracies.Average());