Skip to content

Commit 1adfbc7

Browse files
authored
Rev public API (dotnet#163)
1 parent 7605bf0 commit 1adfbc7

Some content is hidden

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

44 files changed

+760
-828
lines changed

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

-85
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
namespace Microsoft.ML.Auto
6+
{
7+
public class AutoInferenceCatalog
8+
{
9+
private readonly MLContext _context;
10+
11+
internal AutoInferenceCatalog(MLContext context)
12+
{
13+
_context = context;
14+
}
15+
16+
public RegressionExperiment CreateRegressionExperiment(uint maxInferenceTimeInSeconds)
17+
{
18+
return new RegressionExperiment(_context, new RegressionExperimentSettings()
19+
{
20+
MaxInferenceTimeInSeconds = maxInferenceTimeInSeconds
21+
});
22+
}
23+
24+
public RegressionExperiment CreateRegressionExperiment(RegressionExperimentSettings experimentSettings)
25+
{
26+
return new RegressionExperiment(_context, experimentSettings);
27+
}
28+
29+
public BinaryClassificationExperiment CreateBinaryClassificationExperiment(uint maxInferenceTimeInSeconds)
30+
{
31+
return new BinaryClassificationExperiment(_context, new BinaryExperimentSettings()
32+
{
33+
MaxInferenceTimeInSeconds = maxInferenceTimeInSeconds
34+
});
35+
}
36+
37+
public BinaryClassificationExperiment CreateBinaryClassificationExperiment(BinaryExperimentSettings experimentSettings)
38+
{
39+
return new BinaryClassificationExperiment(_context, experimentSettings);
40+
}
41+
42+
public MulticlassClassificationExperiment CreateMulticlassClassificationExperiment(uint maxInferenceTimeInSeconds)
43+
{
44+
return new MulticlassClassificationExperiment(_context, new MulticlassExperimentSettings()
45+
{
46+
MaxInferenceTimeInSeconds = maxInferenceTimeInSeconds
47+
});
48+
}
49+
50+
public MulticlassClassificationExperiment CreateMulticlassClassificationExperiment(MulticlassExperimentSettings experimentSettings)
51+
{
52+
return new MulticlassClassificationExperiment(_context, experimentSettings);
53+
}
54+
55+
public ColumnInferenceResults InferColumns(string path, string label,char? separatorChar = null, bool? allowQuotedStrings = null,
56+
bool? supportSparse = null, bool trimWhitespace = false, bool groupColumns = true)
57+
{
58+
//UserInputValidationUtil.ValidateInferColumnsArgs(path, label);
59+
return ColumnInferenceApi.InferColumns(_context, path, label, separatorChar, allowQuotedStrings, supportSparse, trimWhitespace, groupColumns);
60+
}
61+
62+
public ColumnInferenceResults InferColumns(string path, uint labelColumnIndex, bool hasHeader = false, char? separatorChar = null,
63+
bool? allowQuotedStrings = null, bool? supportSparse = null, bool trimWhitespace = false, bool groupColumns = true)
64+
{
65+
//UserInputValidationUtil.ValidateInferColumnsArgs(path);
66+
return ColumnInferenceApi.InferColumns(_context, path, labelColumnIndex, hasHeader, separatorChar, allowQuotedStrings, supportSparse, trimWhitespace, groupColumns);
67+
}
68+
}
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System;
6+
using System.Collections.Generic;
7+
using System.Linq;
8+
using Microsoft.Data.DataView;
9+
using Microsoft.ML.Core.Data;
10+
using Microsoft.ML.Data;
11+
12+
namespace Microsoft.ML.Auto
13+
{
14+
public class BinaryExperimentSettings : ExperimentSettings
15+
{
16+
public IProgress<RunResult<BinaryClassificationMetrics>> ProgressCallback;
17+
public BinaryClassificationMetric OptimizingMetric;
18+
public BinaryClassificationTrainer[] WhitelistedTrainers;
19+
}
20+
21+
public enum BinaryClassificationMetric
22+
{
23+
Accuracy
24+
}
25+
26+
public enum BinaryClassificationTrainer
27+
{
28+
LightGbm
29+
}
30+
31+
public class BinaryClassificationExperiment
32+
{
33+
private readonly MLContext _context;
34+
private readonly BinaryExperimentSettings _settings;
35+
36+
internal BinaryClassificationExperiment(MLContext context, BinaryExperimentSettings settings)
37+
{
38+
_context = context;
39+
_settings = settings;
40+
}
41+
42+
public IEnumerable<RunResult<BinaryClassificationMetrics>> Execute(IDataView trainData, ColumnInformation columnInformation = null, IEstimator<ITransformer> preFeaturizers = null)
43+
{
44+
return Execute(_context, trainData, columnInformation, null, preFeaturizers);
45+
}
46+
47+
public IEnumerable<RunResult<BinaryClassificationMetrics>> Execute(IDataView trainData, IDataView validationData, ColumnInformation columnInformation = null, IEstimator<ITransformer> preFeaturizers = null)
48+
{
49+
return Execute(_context, trainData, columnInformation, validationData, preFeaturizers);
50+
}
51+
52+
internal RunResult<BinaryClassificationMetrics> Execute(IDataView trainData, uint numberOfCVFolds, ColumnInformation columnInformation = null, IEstimator<ITransformer> preFeaturizers = null)
53+
{
54+
throw new NotImplementedException();
55+
}
56+
57+
internal IEnumerable<RunResult<BinaryClassificationMetrics>> Execute(MLContext context,
58+
IDataView trainData,
59+
ColumnInformation columnInfo,
60+
IDataView validationData = null,
61+
IEstimator<ITransformer> preFeaturizers = null)
62+
{
63+
columnInfo = columnInfo ?? new ColumnInformation();
64+
//UserInputValidationUtil.ValidateAutoFitArgs(trainData, labelColunName, validationData, settings, columnPurposes)
65+
66+
// run autofit & get all pipelines run in that process
67+
var autoFitter = new AutoFitter<BinaryClassificationMetrics>(context, TaskKind.BinaryClassification, trainData, columnInfo,
68+
validationData, preFeaturizers, OptimizingMetric.Accuracy, _settings?.ProgressCallback,
69+
_settings);
70+
71+
return autoFitter.Fit();
72+
}
73+
}
74+
75+
public static class BinaryExperimentResultExtensions
76+
{
77+
public static RunResult<BinaryClassificationMetrics> Best(this IEnumerable<RunResult<BinaryClassificationMetrics>> results)
78+
{
79+
double maxScore = results.Select(r => r.Metrics.Accuracy).Max();
80+
return results.First(r => r.Metrics.Accuracy == maxScore);
81+
}
82+
}
83+
}

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

-87
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System.Collections.Generic;
6+
using Microsoft.ML.Data;
7+
8+
namespace Microsoft.ML.Auto
9+
{
10+
public class ColumnInferenceResults
11+
{
12+
public TextLoader.Arguments TextLoaderArgs { get; set; }
13+
public ColumnInformation ColumnInformation { get; set; }
14+
}
15+
16+
public class ColumnInformation
17+
{
18+
public string LabelColumn = DefaultColumnNames.Label;
19+
public string NameColumn = DefaultColumnNames.Name;
20+
public string GroupIdColumn = DefaultColumnNames.GroupId;
21+
public string WeightColumn = DefaultColumnNames.Weight;
22+
public IEnumerable<string> CategoricalColumns { get; set; }
23+
public IEnumerable<string> NumericColumns { get; set; }
24+
public IEnumerable<string> TextColumns { get; set; }
25+
public IEnumerable<string> IgnoredColumns { get; set; }
26+
}
27+
}

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

-30
This file was deleted.

0 commit comments

Comments
 (0)