diff --git a/src/Microsoft.ML.StandardTrainers/Standard/Simple/SimpleTrainers.cs b/src/Microsoft.ML.StandardTrainers/Standard/Simple/SimpleTrainers.cs index 2184c9f166..b7b371a952 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/Simple/SimpleTrainers.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/Simple/SimpleTrainers.cs @@ -230,7 +230,7 @@ private PriorModelParameters Train(TrainContext context) data.CheckBinaryLabel(); _host.CheckParam(data.Schema.Label.HasValue, nameof(data), "Missing Label column"); var labelCol = data.Schema.Label.Value; - _host.CheckParam(labelCol.Type == NumberDataViewType.Single, nameof(data), "Invalid type for Label column"); + _host.CheckParam(labelCol.Type == BooleanDataViewType.Instance, nameof(data), "Invalid type for Label column"); double pos = 0; double neg = 0; @@ -243,9 +243,9 @@ private PriorModelParameters Train(TrainContext context) using (var cursor = data.Data.GetRowCursor(cols)) { - var getLab = cursor.GetLabelFloatGetter(data); + var getLab = cursor.GetGetter(data.Schema.Label.Value); var getWeight = colWeight >= 0 ? cursor.GetGetter(data.Schema.Weight.Value) : null; - float lab = default; + bool lab = default; float weight = 1; while (cursor.MoveNext()) { @@ -258,9 +258,9 @@ private PriorModelParameters Train(TrainContext context) } // Testing both directions effectively ignores NaNs. - if (lab > 0) + if (lab) pos += weight; - else if (lab <= 0) + else neg += weight; } } diff --git a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt index ae9258e681..8a5c288d72 100644 --- a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt +++ b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt @@ -1,4 +1,4 @@ -maml.exe CV tr=PriorPredictor threads=- dout=%Output% data=%Data% seed=1 +maml.exe CV tr=PriorPredictor threads=- dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% seed=1 Not adding a normalizer. Not training a calibrator because it is not needed. Not adding a normalizer. diff --git a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt index 9e21b55dab..ca8471a9a8 100644 --- a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt +++ b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt @@ -1,4 +1,4 @@ PriorPredictor AUC Accuracy Positive precision Positive recall Negative precision Negative recall Log-loss Log-loss reduction F1 Score AUPRC Learner Name Train Dataset Test Dataset Results File Run Time Physical Memory Virtual Memory Command Line Settings -0.5 0.656163 0 0 0.656163 1 0.935104 -0.00959 NaN 0.418968 PriorPredictor %Data% %Output% 99 0 0 maml.exe CV tr=PriorPredictor threads=- dout=%Output% data=%Data% seed=1 +0.5 0.656163 0 0 0.656163 1 0.935104 -0.00959 NaN 0.418968 PriorPredictor %Data% %Output% 99 0 0 maml.exe CV tr=PriorPredictor threads=- dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% seed=1 diff --git a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt index 8e3bf3b17b..529400420f 100644 --- a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt +++ b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt @@ -1,4 +1,4 @@ -maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% data=%Data% out=%Output% seed=1 +maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% out=%Output% seed=1 Not adding a normalizer. Not training a calibrator because it is not needed. TEST POSITIVE RATIO: 0.3448 (241.0/(241.0+458.0)) diff --git a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt index 60265c1608..efb8a13e71 100644 --- a/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt +++ b/test/BaselineOutput/SingleDebug/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt @@ -1,4 +1,4 @@ PriorPredictor AUC Accuracy Positive precision Positive recall Negative precision Negative recall Log-loss Log-loss reduction F1 Score AUPRC Learner Name Train Dataset Test Dataset Results File Run Time Physical Memory Virtual Memory Command Line Settings -0.5 0.655222 0 0 0.655222 1 0.929318 0 NaN 0.415719 PriorPredictor %Data% %Data% %Output% 99 0 0 maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% data=%Data% out=%Output% seed=1 +0.5 0.655222 0 0 0.655222 1 0.929318 0 NaN 0.415719 PriorPredictor %Data% %Data% %Output% 99 0 0 maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% out=%Output% seed=1 diff --git a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt index ae9258e681..8a5c288d72 100644 --- a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt +++ b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-out.txt @@ -1,4 +1,4 @@ -maml.exe CV tr=PriorPredictor threads=- dout=%Output% data=%Data% seed=1 +maml.exe CV tr=PriorPredictor threads=- dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% seed=1 Not adding a normalizer. Not training a calibrator because it is not needed. Not adding a normalizer. diff --git a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt index 9e21b55dab..ca8471a9a8 100644 --- a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt +++ b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-CV-breast-cancer-rp.txt @@ -1,4 +1,4 @@ PriorPredictor AUC Accuracy Positive precision Positive recall Negative precision Negative recall Log-loss Log-loss reduction F1 Score AUPRC Learner Name Train Dataset Test Dataset Results File Run Time Physical Memory Virtual Memory Command Line Settings -0.5 0.656163 0 0 0.656163 1 0.935104 -0.00959 NaN 0.418968 PriorPredictor %Data% %Output% 99 0 0 maml.exe CV tr=PriorPredictor threads=- dout=%Output% data=%Data% seed=1 +0.5 0.656163 0 0 0.656163 1 0.935104 -0.00959 NaN 0.418968 PriorPredictor %Data% %Output% 99 0 0 maml.exe CV tr=PriorPredictor threads=- dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% seed=1 diff --git a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt index 8e3bf3b17b..529400420f 100644 --- a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt +++ b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-out.txt @@ -1,4 +1,4 @@ -maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% data=%Data% out=%Output% seed=1 +maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% out=%Output% seed=1 Not adding a normalizer. Not training a calibrator because it is not needed. TEST POSITIVE RATIO: 0.3448 (241.0/(241.0+458.0)) diff --git a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt index 60265c1608..efb8a13e71 100644 --- a/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt +++ b/test/BaselineOutput/SingleRelease/PriorPredictor/BinaryPrior-TrainTest-breast-cancer-rp.txt @@ -1,4 +1,4 @@ PriorPredictor AUC Accuracy Positive precision Positive recall Negative precision Negative recall Log-loss Log-loss reduction F1 Score AUPRC Learner Name Train Dataset Test Dataset Results File Run Time Physical Memory Virtual Memory Command Line Settings -0.5 0.655222 0 0 0.655222 1 0.929318 0 NaN 0.415719 PriorPredictor %Data% %Data% %Output% 99 0 0 maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% data=%Data% out=%Output% seed=1 +0.5 0.655222 0 0 0.655222 1 0.929318 0 NaN 0.415719 PriorPredictor %Data% %Data% %Output% 99 0 0 maml.exe TrainTest test=%Data% tr=PriorPredictor dout=%Output% loader=Text{col=Label:BL:0 col=Features:~} data=%Data% out=%Output% seed=1 diff --git a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs index 4f6eec4fcf..72b617295e 100644 --- a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs +++ b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs @@ -120,8 +120,7 @@ public void BinaryPriorTest() { var predictors = new[] { TestLearners.binaryPrior}; - var datasets = GetDatasetsForBinaryClassifierBaseTest(); - RunAllTests(predictors, datasets); + RunAllTests(predictors, new[] { TestDatasets.breastCancerBoolLabel }); Done(); } diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs index 259f4bcd48..d5c2ef7c6a 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs @@ -18,7 +18,7 @@ private IDataView GetBreastCancerDataviewWithTextColumns() HasHeader = true, Columns = new[] { - new TextLoader.Column("Label", DataKind.Single, 0), + new TextLoader.Column("Label", DataKind.Boolean, 0), new TextLoader.Column("F1", DataKind.String, 1), new TextLoader.Column("F2", DataKind.Int32, 2), new TextLoader.Column("Rest", DataKind.Single, new [] { new TextLoader.Range(3, 9) })