Skip to content

Commit 067eda5

Browse files
daholsteDmitry-A
authored andcommitted
upgrade to latest ML.NET public surface (dotnet#246)
1 parent fdc8f30 commit 067eda5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1142
-211
lines changed

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public sealed class BinaryExperimentSettings : ExperimentSettings
2020
public enum BinaryClassificationMetric
2121
{
2222
Accuracy,
23-
Auc,
24-
Auprc,
23+
AreaUnderRocCurve,
24+
AreaUnderPrecisionRecallCurve,
2525
F1Score,
2626
PositivePrecision,
2727
PositiveRecall,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Microsoft.ML.Auto
99
{
1010
public sealed class ColumnInferenceResults
1111
{
12-
public TextLoader.Arguments TextLoaderArgs { get; set; }
12+
public TextLoader.Options TextLoaderOptions { get; set; }
1313
public ColumnInformation ColumnInformation { get; set; }
1414
}
1515

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ namespace Microsoft.ML.Auto
1313
public sealed class MulticlassExperimentSettings : ExperimentSettings
1414
{
1515
public IProgress<RunResult<MultiClassClassifierMetrics>> ProgressHandler;
16-
public MulticlassClassificationMetric OptimizingMetric = MulticlassClassificationMetric.AccuracyMicro;
16+
public MulticlassClassificationMetric OptimizingMetric = MulticlassClassificationMetric.MicroAccuracy;
1717
public MulticlassClassificationTrainer[] WhitelistedTrainers;
1818
}
1919

2020
public enum MulticlassClassificationMetric
2121
{
22-
AccuracyMicro,
23-
AccuracyMacro,
22+
MicroAccuracy,
23+
MacroAccuracy,
2424
LogLoss,
2525
LogLossReduction,
2626
TopKAccuracy,
@@ -99,7 +99,7 @@ internal IEnumerable<RunResult<MultiClassClassifierMetrics>> Execute(MLContext c
9999

100100
public static class MulticlassExperimentResultExtensions
101101
{
102-
public static RunResult<MultiClassClassifierMetrics> Best(this IEnumerable<RunResult<MultiClassClassifierMetrics>> results, MulticlassClassificationMetric metric = MulticlassClassificationMetric.AccuracyMicro)
102+
public static RunResult<MultiClassClassifierMetrics> Best(this IEnumerable<RunResult<MultiClassClassifierMetrics>> results, MulticlassClassificationMetric metric = MulticlassClassificationMetric.MicroAccuracy)
103103
{
104104
var metricsAgent = new MultiMetricsAgent(metric);
105105
return RunResultUtil.GetBestRunResult(results, metricsAgent);

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ public sealed class RegressionExperimentSettings : ExperimentSettings
1919

2020
public enum RegressionMetric
2121
{
22-
L1,
23-
L2,
24-
Rms,
22+
MeanAbsoluteError,
23+
MeanSquaredError,
24+
RootMeanSquaredError,
2525
RSquared
2626
}
2727

src/Microsoft.ML.Auto/ColumnInference/ColumnGroupingInference.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ private static string GetPurposeName(ColumnPurpose purpose, DataKind itemKind)
107107
switch (purpose)
108108
{
109109
case ColumnPurpose.NumericFeature:
110-
if (itemKind == DataKind.Bool)
110+
if (itemKind == DataKind.Boolean)
111111
{
112112
return "BooleanFeatures";
113113
}

src/Microsoft.ML.Auto/ColumnInference/ColumnInferenceApi.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static ColumnInferenceResults InferColumns(MLContext context, string path
5050
bool trimWhitespace, bool groupColumns)
5151
{
5252
var loaderColumns = ColumnTypeInference.GenerateLoaderColumns(typeInference.Columns);
53-
var typedLoaderArgs = new TextLoader.Arguments
53+
var typedLoaderOptions = new TextLoader.Options
5454
{
5555
Columns = loaderColumns,
5656
Separators = new[] { splitInference.Separator.Value },
@@ -59,8 +59,8 @@ public static ColumnInferenceResults InferColumns(MLContext context, string path
5959
HasHeader = hasHeader,
6060
TrimWhitespace = trimWhitespace
6161
};
62-
var textLoader = context.Data.CreateTextLoader(typedLoaderArgs);
63-
var dataView = textLoader.Read(path);
62+
var textLoader = context.Data.CreateTextLoader(typedLoaderOptions);
63+
var dataView = textLoader.Load(path);
6464

6565
var purposeInferenceResult = PurposeInference.InferPurposes(context, dataView, columnInfo);
6666

@@ -83,7 +83,7 @@ public static ColumnInferenceResults InferColumns(MLContext context, string path
8383
purposeResults = purposeInferenceResult.Select(p => (dataView.Schema[p.ColumnIndex].Name, p.Purpose));
8484
}
8585

86-
var textLoaderArgs = new TextLoader.Arguments()
86+
var textLoaderOptions = new TextLoader.Options()
8787
{
8888
Columns = columnResults.ToArray(),
8989
AllowQuoting = splitInference.AllowQuote,
@@ -95,7 +95,7 @@ public static ColumnInferenceResults InferColumns(MLContext context, string path
9595

9696
return new ColumnInferenceResults()
9797
{
98-
TextLoaderArgs = textLoaderArgs,
98+
TextLoaderOptions = textLoaderOptions,
9999
ColumnInformation = ColumnInformationUtil.BuildColumnInfo(purposeResults)
100100
};
101101
}

src/Microsoft.ML.Auto/ColumnInference/ColumnTypeInference.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -256,15 +256,15 @@ private static InferenceResult InferTextFileColumnTypesCore(MLContext context, I
256256
}
257257

258258
// read the file as the specified number of text columns
259-
var textLoaderArgs = new TextLoader.Arguments
259+
var textLoaderOptions = new TextLoader.Options
260260
{
261-
Columns = new[] { new TextLoader.Column("C", DataKind.TX, 0, args.ColumnCount - 1) },
261+
Columns = new[] { new TextLoader.Column("C", DataKind.String, 0, args.ColumnCount - 1) },
262262
Separators = new[] { args.Separator },
263263
AllowSparse = args.AllowSparse,
264264
AllowQuoting = args.AllowQuote,
265265
};
266-
var textLoader = new TextLoader(context, textLoaderArgs);
267-
var idv = textLoader.Read(fileSource);
266+
var textLoader = context.Data.CreateTextLoader(textLoaderOptions);
267+
var idv = textLoader.Load(fileSource);
268268
idv = context.Data.TakeRows(idv, args.MaxRowsToRead);
269269

270270
// read all the data into memory.

src/Microsoft.ML.Auto/ColumnInference/TextFileContents.cs

+7-8
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,19 @@ from _allowQuote in quote
5757
from _sep in separatorCandidates
5858
select new { _allowSparse, _allowQuote, _sep }))
5959
{
60-
var args = new TextLoader.Arguments
60+
var options = new TextLoader.Options
6161
{
6262
Columns = new[] { new TextLoader.Column() {
6363
Name = "C",
64-
Type = DataKind.TX,
64+
DataKind = DataKind.String,
6565
Source = new[] { new TextLoader.Range(0, null) }
6666
} },
6767
Separators = new[] { perm._sep },
6868
AllowQuoting = perm._allowQuote,
6969
AllowSparse = perm._allowSparse
7070
};
7171

72-
if (TryParseFile(context, args, source, out result))
72+
if (TryParseFile(context, options, source, out result))
7373
{
7474
foundAny = true;
7575
break;
@@ -78,16 +78,15 @@ from _sep in separatorCandidates
7878
return foundAny ? result : new ColumnSplitResult(false, null, true, true, 0);
7979
}
8080

81-
private static bool TryParseFile(MLContext context, TextLoader.Arguments args, IMultiStreamSource source,
81+
private static bool TryParseFile(MLContext context, TextLoader.Options options, IMultiStreamSource source,
8282
out ColumnSplitResult result)
8383
{
8484
result = null;
8585
// try to instantiate data view with swept arguments
8686
try
8787
{
88-
89-
var textLoader = new TextLoader(context, args, source);
90-
var idv = context.Data.TakeRows(textLoader.Read(source), 1000);
88+
var textLoader = context.Data.CreateTextLoader(options, source);
89+
var idv = context.Data.TakeRows(textLoader.Load(source), 1000);
9190
var columnCounts = new List<int>();
9291
var column = idv.Schema["C"];
9392
var columnIndex = column.Index;
@@ -113,7 +112,7 @@ private static bool TryParseFile(MLContext context, TextLoader.Arguments args, I
113112
// disallow single-column case
114113
if (mostCommon.Key <= 1) { return false; }
115114

116-
result = new ColumnSplitResult(true, args.Separators.First(), args.AllowQuoting, args.AllowSparse, mostCommon.Key);
115+
result = new ColumnSplitResult(true, options.Separators.First(), options.AllowQuoting, options.AllowSparse, mostCommon.Key);
117116
return true;
118117
}
119118
// fail gracefully if unable to instantiate data view with swept arguments

src/Microsoft.ML.Auto/EstimatorExtensions/EstimatorExtensions.cs

+9-9
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public static SuggestedTransform CreateSuggestedTransform(MLContext context, str
6868

6969
private static IEstimator<ITransformer> CreateInstance(MLContext context, string[] inColumns, string[] outColumns)
7070
{
71-
var pairs = new (string, string)[inColumns.Length];
71+
var pairs = new ColumnOptions[inColumns.Length];
7272
for (var i = 0; i < inColumns.Length; i++)
7373
{
7474
var pair = (outColumns[i], inColumns[i]);
@@ -95,10 +95,10 @@ public static SuggestedTransform CreateSuggestedTransform(MLContext context, str
9595

9696
private static IEstimator<ITransformer> CreateInstance(MLContext context, string[] inColumns, string[] outColumns)
9797
{
98-
var pairs = new MissingValueReplacingEstimator.ColumnInfo[inColumns.Length];
98+
var pairs = new MissingValueReplacingEstimator.ColumnOptions[inColumns.Length];
9999
for (var i = 0; i < inColumns.Length; i++)
100100
{
101-
var pair = new MissingValueReplacingEstimator.ColumnInfo(outColumns[i], inColumns[i]);
101+
var pair = new MissingValueReplacingEstimator.ColumnOptions(outColumns[i], inColumns[i]);
102102
pairs[i] = pair;
103103
}
104104
return context.Transforms.ReplaceMissingValues(pairs);
@@ -143,10 +143,10 @@ public static SuggestedTransform CreateSuggestedTransform(MLContext context, str
143143

144144
public static IEstimator<ITransformer> CreateInstance(MLContext context, string[] inColumns, string[] outColumns)
145145
{
146-
var cols = new OneHotEncodingEstimator.ColumnInfo[inColumns.Length];
146+
var cols = new OneHotEncodingEstimator.ColumnOptions[inColumns.Length];
147147
for (var i = 0; i < cols.Length; i++)
148148
{
149-
cols[i] = new OneHotEncodingEstimator.ColumnInfo(outColumns[i], inColumns[i]);
149+
cols[i] = new OneHotEncodingEstimator.ColumnOptions(outColumns[i], inColumns[i]);
150150
}
151151
return context.Transforms.Categorical.OneHotEncoding(cols);
152152
}
@@ -174,10 +174,10 @@ public static SuggestedTransform CreateSuggestedTransform(MLContext context, str
174174

175175
private static IEstimator<ITransformer> CreateInstance(MLContext context, string[] inColumns, string[] outColumns)
176176
{
177-
var cols = new OneHotHashEncodingEstimator.ColumnInfo[inColumns.Length];
177+
var cols = new OneHotHashEncodingEstimator.ColumnOptions[inColumns.Length];
178178
for (var i = 0; i < cols.Length; i++)
179179
{
180-
cols[i] = new OneHotHashEncodingEstimator.ColumnInfo(outColumns[i], inColumns[i]);
180+
cols[i] = new OneHotHashEncodingEstimator.ColumnOptions(outColumns[i], inColumns[i]);
181181
}
182182
return context.Transforms.Categorical.OneHotHashEncoding(cols);
183183
}
@@ -221,10 +221,10 @@ public static SuggestedTransform CreateSuggestedTransform(MLContext context, str
221221

222222
private static IEstimator<ITransformer> CreateInstance(MLContext context, string[] inColumns, string[] outColumns)
223223
{
224-
var cols = new TypeConvertingEstimator.ColumnInfo[inColumns.Length];
224+
var cols = new TypeConvertingEstimator.ColumnOptions[inColumns.Length];
225225
for (var i = 0; i < cols.Length; i++)
226226
{
227-
cols[i] = new TypeConvertingEstimator.ColumnInfo(outColumns[i], DataKind.R4, inColumns[i]);
227+
cols[i] = new TypeConvertingEstimator.ColumnOptions(outColumns[i], DataKind.Single, inColumns[i]);
228228
}
229229
return context.Transforms.Conversion.ConvertType(cols);
230230
}

src/Microsoft.ML.Auto/Experiment/MetricsAgents/BinaryMetricsAgent.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public double GetScore(BinaryClassificationMetrics metrics)
2222
{
2323
case BinaryClassificationMetric.Accuracy:
2424
return metrics.Accuracy;
25-
case BinaryClassificationMetric.Auc:
25+
case BinaryClassificationMetric.AreaUnderRocCurve:
2626
return metrics.Auc;
27-
case BinaryClassificationMetric.Auprc:
27+
case BinaryClassificationMetric.AreaUnderPrecisionRecallCurve:
2828
return metrics.Auprc;
2929
case BinaryClassificationMetric.F1Score:
3030
return metrics.F1Score;
@@ -52,9 +52,9 @@ public bool IsModelPerfect(BinaryClassificationMetrics metrics)
5252
{
5353
case BinaryClassificationMetric.Accuracy:
5454
return metrics.Accuracy == 1;
55-
case BinaryClassificationMetric.Auc:
55+
case BinaryClassificationMetric.AreaUnderRocCurve:
5656
return metrics.Auc == 1;
57-
case BinaryClassificationMetric.Auprc:
57+
case BinaryClassificationMetric.AreaUnderPrecisionRecallCurve:
5858
return metrics.Auprc == 1;
5959
case BinaryClassificationMetric.F1Score:
6060
return metrics.F1Score == 1;

src/Microsoft.ML.Auto/Experiment/MetricsAgents/MultiMetricsAgent.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ public double GetScore(MultiClassClassifierMetrics metrics)
1919
{
2020
switch (_optimizingMetric)
2121
{
22-
case MulticlassClassificationMetric.AccuracyMacro:
22+
case MulticlassClassificationMetric.MacroAccuracy:
2323
return metrics.AccuracyMacro;
24-
case MulticlassClassificationMetric.AccuracyMicro:
24+
case MulticlassClassificationMetric.MicroAccuracy:
2525
return metrics.AccuracyMicro;
2626
case MulticlassClassificationMetric.LogLoss:
2727
return metrics.LogLoss;
@@ -43,9 +43,9 @@ public bool IsModelPerfect(MultiClassClassifierMetrics metrics)
4343

4444
switch (_optimizingMetric)
4545
{
46-
case MulticlassClassificationMetric.AccuracyMacro:
46+
case MulticlassClassificationMetric.MacroAccuracy:
4747
return metrics.AccuracyMacro == 1;
48-
case MulticlassClassificationMetric.AccuracyMicro:
48+
case MulticlassClassificationMetric.MicroAccuracy:
4949
return metrics.AccuracyMicro == 1;
5050
case MulticlassClassificationMetric.LogLoss:
5151
return metrics.LogLoss == 0;

src/Microsoft.ML.Auto/Experiment/MetricsAgents/RegressionMetricsAgent.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ public double GetScore(RegressionMetrics metrics)
1919
{
2020
switch (_optimizingMetric)
2121
{
22-
case RegressionMetric.L1:
22+
case RegressionMetric.MeanAbsoluteError:
2323
return metrics.L1;
24-
case RegressionMetric.L2:
24+
case RegressionMetric.MeanSquaredError:
2525
return metrics.L2;
26-
case RegressionMetric.Rms:
26+
case RegressionMetric.RootMeanSquaredError:
2727
return metrics.Rms;
2828
case RegressionMetric.RSquared:
2929
return metrics.RSquared;
@@ -41,11 +41,11 @@ public bool IsModelPerfect(RegressionMetrics metrics)
4141

4242
switch (_optimizingMetric)
4343
{
44-
case RegressionMetric.L1:
44+
case RegressionMetric.MeanAbsoluteError:
4545
return metrics.L1 == 0;
46-
case RegressionMetric.L2:
46+
case RegressionMetric.MeanSquaredError:
4747
return metrics.L2 == 0;
48-
case RegressionMetric.Rms:
48+
case RegressionMetric.RootMeanSquaredError:
4949
return metrics.Rms == 0;
5050
case RegressionMetric.RSquared:
5151
return metrics.RSquared == 1;

src/Microsoft.ML.Auto/Experiment/OptimizingMetricInfo.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ internal sealed class OptimizingMetricInfo
1212

1313
private static RegressionMetric[] _minimizingRegressionMetrics = new RegressionMetric[]
1414
{
15-
RegressionMetric.L1,
16-
RegressionMetric.L2,
17-
RegressionMetric.Rms
15+
RegressionMetric.MeanAbsoluteError,
16+
RegressionMetric.MeanSquaredError,
17+
RegressionMetric.RootMeanSquaredError
1818
};
1919

2020
private static BinaryClassificationMetric[] _minimizingBinaryMetrics = new BinaryClassificationMetric[]

src/Microsoft.ML.Auto/Experiment/SuggestedTrainer.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
using System.Collections.Generic;
66
using System.Linq;
7-
using Microsoft.ML.Training;
7+
using Microsoft.ML.Trainers;
88

99
namespace Microsoft.ML.Auto
1010
{
@@ -41,7 +41,7 @@ public SuggestedTrainer Clone()
4141
return new SuggestedTrainer(_mlContext, _trainerExtension, _columnInfo, HyperParamSet?.Clone());
4242
}
4343

44-
public ITrainerEstimator<ISingleFeaturePredictionTransformer<IPredictor>, IPredictor> BuildTrainer()
44+
public ITrainerEstimator<ISingleFeaturePredictionTransformer<object>, object> BuildTrainer()
4545
{
4646
IEnumerable<SweepableParam> sweepParams = null;
4747
if (HyperParamSet != null)

src/Microsoft.ML.Auto/Microsoft.ML.Auto.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Microsoft.ML" Version="0.11.0-preview-27416-1" />
10-
<PackageReference Include="Microsoft.ML.HalLearners" Version="0.11.0-preview-27416-1" />
11-
<PackageReference Include="Microsoft.ML.LightGBM" Version="0.11.0-preview-27416-1" />
9+
<PackageReference Include="Microsoft.ML" Version="0.11.0-preview-27428-4" />
10+
<PackageReference Include="Microsoft.ML.HalLearners" Version="0.11.0-preview-27428-4" />
11+
<PackageReference Include="Microsoft.ML.LightGBM" Version="0.11.0-preview-27428-4" />
1212
</ItemGroup>
1313

1414
<PropertyGroup>

src/Microsoft.ML.Auto/TrainerExtensions/BinaryTrainerExtensions.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
using Microsoft.ML.Trainers.FastTree;
99
using Microsoft.ML.Trainers.HalLearners;
1010
using Microsoft.ML.Trainers.Online;
11-
using Microsoft.ML.Training;
1211

1312
namespace Microsoft.ML.Auto
1413
{
15-
using ITrainerEstimator = ITrainerEstimator<ISingleFeaturePredictionTransformer<IPredictor>, IPredictor>;
14+
using ITrainerEstimator = ITrainerEstimator<ISingleFeaturePredictionTransformer<object>, object>;
1615

1716
internal class AveragedPerceptronBinaryExtension : ITrainerExtension
1817
{

src/Microsoft.ML.Auto/TrainerExtensions/ITrainerExtension.cs

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

55
using System.Collections.Generic;
6-
using Microsoft.ML.Training;
6+
using Microsoft.ML.Trainers;
77

88
namespace Microsoft.ML.Auto
99
{
10-
using ITrainerEstimator = ITrainerEstimator<ISingleFeaturePredictionTransformer<IPredictor>, IPredictor>;
10+
using ITrainerEstimator = ITrainerEstimator<ISingleFeaturePredictionTransformer<object>, object>;
1111

1212
internal interface ITrainerExtension
1313
{

0 commit comments

Comments
 (0)