Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

code migration from machinelearning-automl to machinelearning repo feature branch #3324

Merged
merged 213 commits into from Apr 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
8481317
Initial commit
jongalloway Jan 4, 2019
7ba62c4
ci test build
Dmitry-A Jan 15, 2019
bf40476
forgot to save this one file
Dmitry-A Jan 15, 2019
233829b
Debug-Intrinsics isn't a valid config, trying windows-x64
Dmitry-A Jan 15, 2019
d758d72
disabled tests for now
Dmitry-A Jan 15, 2019
1770ff8
disable tests attempt 2
Dmitry-A Jan 15, 2019
63b3438
initial code push, no history, test project not in the build so is th…
Dmitry-A Jan 15, 2019
1e451c2
battling with warn as err
Dmitry-A Jan 15, 2019
ae67a1d
test build
Dmitry-A Jan 15, 2019
6448213
test change
Dmitry-A Jan 15, 2019
ef3a6b3
Merge pull request #1 from dotnet/users/dmitrya/ci-testing2
Dmitry-A Jan 15, 2019
e402e14
make params for MLContext data extensions match ML.NET default names …
daholste Jan 16, 2019
d65315f
Create README.md (#2)
justinormont Jan 16, 2019
27f5afd
API folder changes (#6)
vinodshanbhag Jan 16, 2019
f1e7617
comment out fast forest trainer, per discussion on ML.NET open issue …
daholste Jan 16, 2019
3d9eb10
Make validation data param mandatory; remove GetFirstPipeline sample …
daholste Jan 16, 2019
030e25a
Create ISSUE_TEMPLATE.md & PULL_REQUEST_TEMPLATE.md (#12)
justinormont Jan 17, 2019
4e58b0b
NestedObject For pipeline (#14)
vinodshanbhag Jan 17, 2019
d47a17d
add estimator extensions / catalog; add conversion from external to i…
daholste Jan 18, 2019
181fbe2
corrected the typo in readme (#16)
srsaggam Jan 18, 2019
23862a1
make GetNextPipeline API w/ public Pipeline method on PipelineSuggest…
daholste Jan 18, 2019
ae423a9
get next pipeline API rev -- refactor API to consume column dimension…
daholste Jan 23, 2019
9f49cf1
mark get next pipeline test as ignore for now (#20)
daholste Jan 23, 2019
ab6930c
fix dataview take util bug, add dataview skip util, add some UTs to i…
daholste Jan 23, 2019
f7e6376
unit test additions (including user input validation testing); dead c…
daholste Jan 24, 2019
3d3567c
add trainer extension tests, & misc fixes (#23)
daholste Jan 24, 2019
35099ad
add estimator extension tests (#24)
daholste Jan 24, 2019
5caf142
add conversions tests (#25)
daholste Jan 24, 2019
fb6390b
fix multiclass runs & add multiclass autofit UT (#27)
daholste Jan 25, 2019
468a1b7
add basic autofit regression test (#28)
daholste Jan 25, 2019
e447d74
fix categorical transform bug (sometimes categorical features weren't…
daholste Jan 25, 2019
05c7fe0
add example to readme (#26)
daholste Jan 25, 2019
bf42ba5
add lightgbm args as nested properties (#33)
daholste Jan 26, 2019
6609cd9
fix bug where if one pipeline hyperparam optimization converges, run …
daholste Jan 28, 2019
1c4886b
add open-source headers to files; other nit clean-ups along the way (…
daholste Jan 28, 2019
390e9d7
Ungroup Columns in Column Inference (#40)
srsaggam Jan 29, 2019
2a638cc
Misc fixes (#39)
daholste Jan 29, 2019
21b16c3
Removing the nuget.config and have build.props mention the nuget pack…
srsaggam Jan 29, 2019
ff599fd
transform inferencing concat / ignore fixes (#41)
daholste Jan 29, 2019
f8dd6f8
make pipeline object model & other public classes internal (#43)
daholste Jan 29, 2019
bd900ff
handle SMAC exception when fewer trees were trained than requested (#44)
daholste Jan 29, 2019
d254f4e
Throw error on incorrect Label name in InferColumns API (#47)
srsaggam Jan 30, 2019
41c663c
Set Nullable Auto params to null values (#50)
srsaggam Jan 30, 2019
e4a64cf
First public api propsal (#52)
vinodshanbhag Jan 30, 2019
e6fa88e
Revert "Set Nullable Auto params to null values" (#53)
srsaggam Jan 31, 2019
bbbd341
AutoFit return type is now an IEnumerable (#55)
vinodshanbhag Feb 1, 2019
e3ae06f
misc fixes & test additions, towards 0.1 release (#56)
daholste Feb 3, 2019
6d4cb73
Enable UnitTests on build server (#57)
daholste Feb 3, 2019
60083a8
1) Making trainer name public (#62)
vinodshanbhag Feb 6, 2019
312e267
Initial version of CLI tool for mlnet (#61)
srsaggam Feb 6, 2019
4748f03
Use better AutiFit overload and ignore Multiclass (#64)
vinodshanbhag Feb 6, 2019
974b2d7
Upgrading CLI to produce ML.NET V.10 APIs and bunch of Refactoring ta…
srsaggam Feb 7, 2019
bd9b5fe
Upgrade ML.NET package to 0.10.0 (#70)
daholste Feb 7, 2019
c8160d4
Change in template to accomodate new API of TextLoader (#72)
srsaggam Feb 7, 2019
3bcaaf8
Enable gated check for mlnet.tests (#79)
srsaggam Feb 7, 2019
c8f8e38
CLI tool - make validation dataset optional and support for crossvali…
srsaggam Feb 8, 2019
aba6f93
benchmarking related changes (#63)
Dmitry-A Feb 8, 2019
057023b
fix fast forest learner (don't sweep over learning rate) (#88)
daholste Feb 8, 2019
6f2bcab
Made changes to Have non-calibrated scoring for binary classifiers (#86)
srsaggam Feb 9, 2019
31379c4
rev ColumnInference API: can take label index; rev output object type…
daholste Feb 10, 2019
fd5c904
rename AutoML to Microsoft.ML.Auto everywhere and a shot at publishin…
Dmitry-A Feb 11, 2019
f92e1a2
publish nuget (#101)
Dmitry-A Feb 11, 2019
9cee0eb
Fix Codegen for columnConvert and ValueToKeyMapping transform and add…
srsaggam Feb 11, 2019
b8b577a
When generating usings choose only distinct usings directives (#94)
srsaggam Feb 11, 2019
8ec02d8
Autofit overloads + cancellation + progress callbacks
vinodshanbhag Feb 12, 2019
6ed9d0a
Default the kfolds to value 5 in CLI generated code (#115)
srsaggam Feb 12, 2019
6995688
Remove extra ; from generated code (#114)
srsaggam Feb 12, 2019
ed430ef
TimeoutInSeconds (#116)
vinodshanbhag Feb 13, 2019
48de6a7
Added more command line args implementation to CLI tool and refactori…
srsaggam Feb 13, 2019
1ed4195
Fail gracefully if unable to instantiate data view with swept paramet…
daholste Feb 14, 2019
1dc5ba2
validate AutoFit 'Features' column must be of type R4 (#132)
daholste Feb 14, 2019
1066191
Samples: exceptions / nits (#124)
daholste Feb 14, 2019
d5dc0ce
Logging support in CLI + Implementation of cmd args [--name,--output,…
srsaggam Feb 14, 2019
e6da4a4
added correct validation check (#137)
srsaggam Feb 14, 2019
eac7ff4
Use CreateTextLoader<T>(..) instead of CreateTextLoader(..) (#138)
srsaggam Feb 14, 2019
73dfed0
changed CreateTextLoader to ReadFromTextFile method. (#140)
srsaggam Feb 15, 2019
38595ab
exception fixes (#136)
daholste Feb 15, 2019
ff9b14a
infer purpose of hidden columns as 'ignore' (#142)
daholste Feb 15, 2019
ad8c28e
Added approval tests and bunch of refactoring of code and normalizing…
srsaggam Feb 15, 2019
8029cc1
API 2.0 skeleton (#149)
vinodshanbhag Feb 15, 2019
9fb2de3
The CV code should come before the training when there is no test dat…
srsaggam Feb 17, 2019
1c1004b
Format the generated code + bunch of misc tasks (#152)
srsaggam Feb 19, 2019
9fa97a3
Sanitize the column names in CLI (#162)
srsaggam Feb 20, 2019
7605bf0
fix package name (#168)
srsaggam Feb 20, 2019
1adfbc7
Rev public API (#163)
daholste Feb 20, 2019
b4bfe72
Rename TransformGeneratorBase .cs to TransformGeneratorBase.cs (#153)
justinormont Feb 20, 2019
abf1b3d
Fix minor version for the repository + remove Nlog config package (#171)
srsaggam Feb 20, 2019
fa6e616
Added new test to columninfo and fixing up API (#178)
vinodshanbhag Feb 20, 2019
51a613c
Make optimizing metric customizable and add trainer whitelist functio…
daholste Feb 20, 2019
8a9f1f2
API rev (#181)
daholste Feb 20, 2019
2d8a6ed
propagate root MLContext thru AutoML (instead of creating our own) (#…
daholste Feb 21, 2019
ce4ad27
Enabling new command line args (#183)
srsaggam Feb 21, 2019
0d93e80
rename 'AutoFitter' to 'Experiment' (#169)
daholste Feb 21, 2019
63d5b2d
added tests (#187)
srsaggam Feb 21, 2019
12c236c
rev InferColumns to accept ColumnInfo input param (#186)
daholste Feb 21, 2019
88ff3f5
Implement argument --has-header and change usage of dataset (#194)
srsaggam Feb 22, 2019
9cc2910
removed dummy command (#195)
srsaggam Feb 22, 2019
b3f980b
Fix bug for regression and sanitize input label from user (#198)
srsaggam Feb 22, 2019
0444787
Do not generate code concatenating columns when the dataset has a sin…
daholste Feb 22, 2019
7744549
Include some missed logging in the generated code. (#199)
srsaggam Feb 22, 2019
2f1b176
cleaning up proj files (#185)
srsaggam Feb 22, 2019
895414c
Some spaces and extra lines + bug in output path (#204)
srsaggam Feb 22, 2019
5279a69
accept label from user input and provide in generated code (#205)
srsaggam Feb 23, 2019
c4090f3
Rev handling of weight / label columns (#203)
daholste Feb 23, 2019
2f9263c
migrate to private ML.NET nuget for latest bug fixes (#131)
daholste Feb 23, 2019
796ae8a
fix multiclass with nonstandard label (#207)
daholste Feb 23, 2019
abf6f0d
Multiclass nondefault label test (#208)
daholste Feb 23, 2019
c955ae9
printing escaped chars + bug (#212)
srsaggam Feb 25, 2019
37cb1f8
delete unused internal samples (#211)
daholste Feb 25, 2019
08e908c
fix SMAC bug that causes multiclass sample to infinite loop (#209)
daholste Feb 25, 2019
18bf568
Rev user input validation for new API (#210)
daholste Feb 25, 2019
b3271f6
added console message for exit and nit picks (#215)
srsaggam Feb 25, 2019
27a599d
exit when exception encountered (#216)
srsaggam Feb 25, 2019
3437212
Seal API classes (and make EnableCaching internal) (#217)
daholste Feb 26, 2019
0aa5d0f
Suggested sample nits (feel free to ask for any of these to be revert…
daholste Feb 26, 2019
b629d78
User input column type validation (#218)
daholste Feb 26, 2019
8463bae
upgrade commandline and renaming (#221)
srsaggam Feb 26, 2019
9ea19bd
Make build.sh, init-tools.sh, & run.sh executable on OSX/Linux (#225)
justinormont Feb 26, 2019
dea2fe2
CLI argument descriptions updated (#224)
CESARDELATORRE Feb 26, 2019
95dc1fc
added flag to disable training code (#227)
srsaggam Feb 26, 2019
e52d7f0
Exit if perfect model produced (#220)
daholste Feb 26, 2019
95b58d3
removed header (#228)
srsaggam Feb 26, 2019
9f8de06
removed console read key (#229)
srsaggam Feb 26, 2019
9de92e6
Fix model path in generated file (#230)
srsaggam Feb 26, 2019
15dd299
reorder samples (#231)
daholste Feb 26, 2019
b5e7e1f
remove rule that infers column purpose as categorical if # of distinc…
daholste Feb 27, 2019
79ad446
Null reference exception fix for finding best model when some runs ha…
daholste Feb 28, 2019
9e56488
samples fixes (#238)
daholste Feb 28, 2019
d8d9295
fix for defaulting Averaged Perceptron # of iterations to 10 (#237)
daholste Feb 28, 2019
12cff38
Bug bash feedback Feb 27. API changes and sample changes (#240)
vinodshanbhag Feb 28, 2019
584a0d6
Samples / API rev from 2/27 bug bash feedback (#242)
daholste Feb 28, 2019
20d45db
changed the directory structure for generated project (#243)
srsaggam Mar 1, 2019
44e5c7a
Fix test file locations on OSX (#235)
justinormont Mar 1, 2019
ce27641
upgrade to latest ML.NET public surface (#246)
daholste Mar 2, 2019
80a48be
Upgrade to ML.NET 0.11 (#247)
srsaggam Mar 2, 2019
3f77e59
Private preview final API changes (#250)
vinodshanbhag Mar 3, 2019
8fd2aa8
Add estimator to public API iteration result (#248)
daholste Mar 3, 2019
b3fd4dc
LightGBM pipeline serialization fix (#251)
daholste Mar 3, 2019
7f74a29
Change order that we search for TextLoader's parameters (#256)
justinormont Mar 3, 2019
6e1cf63
CLI IFileInfo null exception fix (#254)
daholste Mar 3, 2019
e4a2dc8
Averaged Perceptron pipeline serialization fix (#257)
daholste Mar 4, 2019
12a5d46
Upgrade command-line-api and default folder name change (#258)
srsaggam Mar 4, 2019
958dbf8
eliminate IFileInfo from CLI (#260)
daholste Mar 4, 2019
3b1d0ac
Rev samples towards private preview; ignored columns fix (#259)
daholste Mar 4, 2019
3acd887
remove unused methods in consolehelper and nit picks in generated cod…
srsaggam Mar 4, 2019
1a5161d
added nuget sources in generated csproj (#262)
srsaggam Mar 5, 2019
c77b78a
upgrade to mlnet 0.11 (#263)
srsaggam Mar 6, 2019
677aa0e
Formatting CLI metrics (#264)
justinormont Mar 6, 2019
551a7a1
Add implementation of non -ova multi class trainers code gen (#267)
srsaggam Mar 6, 2019
3326539
Add caching (#249)
daholste Mar 7, 2019
cc7bb86
AdvancedExperimentSettings sample nits (#265)
daholste Mar 7, 2019
3ad0798
Add sampling key column (#268)
daholste Mar 7, 2019
fe503d3
Initial work for multi-class classification support for CLI (#226)
justinormont Mar 7, 2019
50f8f62
Refactor the orchestration of AutoML calls (#272)
srsaggam Mar 8, 2019
2ea089e
Do not auto-group columns with suggested purpose = 'Ignore' (#273)
daholste Mar 8, 2019
2ba9664
Fix: during type inferencing, parse whitespace strings as NaN (#271)
daholste Mar 8, 2019
001b8df
Printing additional metrics in CLI for binary classification (#274)
justinormont Mar 8, 2019
dba3828
Add API option to store models on disk (instead of in memory); fix IE…
daholste Mar 8, 2019
d03e55f
Print failed iterations in CLI (#275)
justinormont Mar 13, 2019
0bb8951
change the type to float from double (#277)
srsaggam Mar 13, 2019
3a4595d
cache arg implementation in CLI (#280)
srsaggam Mar 13, 2019
f25e4f9
Remove duplicate value-to-key mapping transform for multiclass string…
daholste Mar 14, 2019
6e5a5d7
Add post-trainer transform SDK infra; add KeyToValueMapping transform…
daholste Mar 15, 2019
4a6921d
Implement ignore columns command line arg (#290)
srsaggam Mar 16, 2019
9603fc4
Print winning iteration and runtime in CLI (#288)
justinormont Mar 16, 2019
990cfbd
Add MacOS & Linux to CI; MacOS & Linux test fixes (#293)
daholste Mar 17, 2019
dc16273
MicroAccuracy as default for multi-class (#295)
justinormont Mar 17, 2019
260937c
Null exception for ignorecolumns in CLI (#294)
justinormont Mar 18, 2019
6013b95
Emit caching flag in pipeline object model. (Includes SuggestedPipeli…
daholste Mar 18, 2019
829ae8c
removed sln (#297)
srsaggam Mar 18, 2019
2c44aab
Caching enabling in code gen part -2 (#298)
srsaggam Mar 18, 2019
30046a1
support comma separated values for --ignore-columns (#300)
srsaggam Mar 19, 2019
d2c50a7
default initialization for ignore columns (#302)
srsaggam Mar 20, 2019
14091e4
Codegen for multiclass non-ova (#303)
srsaggam Mar 20, 2019
25cc50d
Generated Project new structure. (#305)
srsaggam Mar 25, 2019
35e5bbc
include using system in prediction class (#307)
srsaggam Mar 25, 2019
e152288
Random number generator is not thread safe (#310)
justinormont Mar 26, 2019
cf8c1f4
Fix multiclass code gen (#314)
srsaggam Mar 26, 2019
db3850c
Fix compile error in codegen project (#319)
srsaggam Mar 27, 2019
73d141b
Rev OVA pipeline node SDK output: wrap binary trainers as children in…
daholste Mar 27, 2019
64f5ba1
Ova Multi class codegen support (#321)
srsaggam Mar 27, 2019
a3e7f6a
Rev run result trainer name for OVA: output different trainer name fo…
daholste Mar 27, 2019
4b6cb6a
Console helper bug in generated code for multiclass (#323)
srsaggam Mar 27, 2019
b2196c2
Initial version of Progress bar impl and CLI UI experience (#325)
srsaggam Mar 29, 2019
701aa82
Setting model directory to temp directory (#327)
vinodshanbhag Mar 30, 2019
c674103
Suggested changes to progress bar (#335)
srsaggam Apr 1, 2019
c328d21
Rev Samples (#334)
daholste Apr 1, 2019
f44473f
Telemetry2 (#333)
Dmitry-A Apr 2, 2019
93cf2d3
Fix progress bar in linux/osx (#336)
srsaggam Apr 2, 2019
6a752a5
Mem leak fix (#328)
Dmitry-A Apr 2, 2019
f9d547b
Upgrade ML.NET package (#343)
daholste Apr 3, 2019
43fe8b8
Add cross-validation (CV), and auto-CV for small datasets; push commo…
daholste Apr 3, 2019
6b2eca8
restore old yml for internal pipeline so we can publish nuget again t…
Dmitry-A Apr 3, 2019
3c492c4
Polishing the CLI UI part-1 (#338)
srsaggam Apr 4, 2019
cab5809
CLI ML.NET version upgrade (#345)
daholste Apr 4, 2019
a810d8d
Sample revs; ColumnInformation property name revs; pre-featurizer fix…
daholste Apr 4, 2019
e89b9a8
CLI -- consume logs from AutoML SDK (#349)
daholste Apr 5, 2019
b68b8f2
Rename RunDetails --> RunDetail (#350)
daholste Apr 5, 2019
ba08a53
command line api upgrade and progress bar rendering bug (#366)
srsaggam Apr 9, 2019
9b6adcd
change in the version (#368)
srsaggam Apr 9, 2019
4f9dc40
fix few bugs in progressbar and verbosity (#374)
srsaggam Apr 10, 2019
96d2427
Fix for folders with space in it while generating project (#376)
srsaggam Apr 10, 2019
40496fd
SMAC fix for minimizing metrics (#363)
daholste Apr 11, 2019
9faceb2
Formatting Regression metrics and progress bar display days. (#379)
srsaggam Apr 11, 2019
ffd773b
change command name and add pbar message (#380)
srsaggam Apr 11, 2019
662a8ea
UI missing features (#382)
srsaggam Apr 12, 2019
e257648
downgrade the codepages (#384)
srsaggam Apr 12, 2019
c5ec302
Change in project structure (#385)
srsaggam Apr 12, 2019
d4b7700
FileSizeBuckets in correct units (#387)
justinormont Apr 12, 2019
5227ee5
changed order (#388)
srsaggam Apr 12, 2019
553e089
prep work to transfer to ml.net (#389)
Dmitry-A Apr 12, 2019
2d32ee0
moving code and history over from machinelearning-automl
Dmitry-A Apr 12, 2019
013a8d3
Add AutoML components to build, fix issues related to that so it builds
Dmitry-A Apr 12, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
91 changes: 91 additions & 0 deletions Microsoft.ML.AutoML.sln
@@ -0,0 +1,91 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28010.2050
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Auto", "src\Microsoft.ML.Auto\Microsoft.ML.Auto.csproj", "{B3727729-3DF8-47E0-8710-9B41DAF55817}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.AutoML.Tests", "test\Microsoft.ML.AutoML.Tests\Microsoft.ML.AutoML.Tests.csproj", "{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mlnet", "src\mlnet\mlnet.csproj", "{ED714FA5-6F89-401B-9E7F-CADF1373C553}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mlnet.Tests", "test\mlnet.Tests\mlnet.Tests.csproj", "{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug-Intrinsics|Any CPU = Debug-Intrinsics|Any CPU
Debug-netfx|Any CPU = Debug-netfx|Any CPU
Release|Any CPU = Release|Any CPU
Release-Intrinsics|Any CPU = Release-Intrinsics|Any CPU
Release-netfx|Any CPU = Release-netfx|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug-netfx|Any CPU.ActiveCfg = Debug-netfx|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Debug-netfx|Any CPU.Build.0 = Debug-netfx|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release|Any CPU.Build.0 = Release|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release-netfx|Any CPU.ActiveCfg = Release-netfx|Any CPU
{B3727729-3DF8-47E0-8710-9B41DAF55817}.Release-netfx|Any CPU.Build.0 = Release-netfx|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug-netfx|Any CPU.ActiveCfg = Debug-netfx|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Debug-netfx|Any CPU.Build.0 = Debug-netfx|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release|Any CPU.Build.0 = Release|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release-netfx|Any CPU.ActiveCfg = Release-netfx|Any CPU
{64A7294E-A2C7-4499-8F0B-4BB074047C6B}.Release-netfx|Any CPU.Build.0 = Release-netfx|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug-Intrinsics|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug-Intrinsics|Any CPU.Build.0 = Debug-Intrinsics|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug-netfx|Any CPU.ActiveCfg = Debug-netfx|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Debug-netfx|Any CPU.Build.0 = Debug-netfx|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release|Any CPU.Build.0 = Release|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release-Intrinsics|Any CPU.ActiveCfg = Release-Intrinsics|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release-Intrinsics|Any CPU.Build.0 = Release-Intrinsics|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release-netfx|Any CPU.ActiveCfg = Release-netfx|Any CPU
{55ACB7E2-053D-43BB-88E8-0E102FBD62F0}.Release-netfx|Any CPU.Build.0 = Release-netfx|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug-Intrinsics|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug-Intrinsics|Any CPU.Build.0 = Debug-Intrinsics|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug-netfx|Any CPU.ActiveCfg = Debug-netfx|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Debug-netfx|Any CPU.Build.0 = Debug-netfx|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release|Any CPU.Build.0 = Release|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release-Intrinsics|Any CPU.ActiveCfg = Release-Intrinsics|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release-Intrinsics|Any CPU.Build.0 = Release-Intrinsics|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release-netfx|Any CPU.ActiveCfg = Release-netfx|Any CPU
{ED714FA5-6F89-401B-9E7F-CADF1373C553}.Release-netfx|Any CPU.Build.0 = Release-netfx|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug-Intrinsics|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug-Intrinsics|Any CPU.Build.0 = Debug-Intrinsics|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug-netfx|Any CPU.ActiveCfg = Debug-netfx|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Debug-netfx|Any CPU.Build.0 = Debug-netfx|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release|Any CPU.Build.0 = Release|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release-Intrinsics|Any CPU.ActiveCfg = Release-Intrinsics|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release-Intrinsics|Any CPU.Build.0 = Release-Intrinsics|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release-netfx|Any CPU.ActiveCfg = Release-netfx|Any CPU
{AAC3E4E6-C146-44BB-8873-A1E61D563F2A}.Release-netfx|Any CPU.Build.0 = Release-netfx|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8C1BC26C-B87E-47CD-928E-00EFE4353B40}
EndGlobalSection
EndGlobal
1 change: 1 addition & 0 deletions build.proj
Expand Up @@ -22,6 +22,7 @@

<ItemGroup>
<Project Include="Microsoft.ML.sln" />
<Project Include="Microsoft.ML.AutoML.sln" />
</ItemGroup>

<Import Project="dir.traversal.targets" />
Expand Down
79 changes: 79 additions & 0 deletions src/Microsoft.ML.Auto/API/AutoInferenceCatalog.cs
@@ -0,0 +1,79 @@
// Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using Microsoft.ML.Data;

namespace Microsoft.ML.Auto
{
public sealed class AutoMLCatalog
{
private readonly MLContext _context;

internal AutoMLCatalog(MLContext context)
{
_context = context;
}

public RegressionExperiment CreateRegressionExperiment(uint maxExperimentTimeInSeconds)
{
return new RegressionExperiment(_context, new RegressionExperimentSettings()
{
MaxExperimentTimeInSeconds = maxExperimentTimeInSeconds
});
}

public RegressionExperiment CreateRegressionExperiment(RegressionExperimentSettings experimentSettings)
{
return new RegressionExperiment(_context, experimentSettings);
}

public BinaryClassificationExperiment CreateBinaryClassificationExperiment(uint maxExperimentTimeInSeconds)
{
return new BinaryClassificationExperiment(_context, new BinaryExperimentSettings()
{
MaxExperimentTimeInSeconds = maxExperimentTimeInSeconds
});
}

public BinaryClassificationExperiment CreateBinaryClassificationExperiment(BinaryExperimentSettings experimentSettings)
{
return new BinaryClassificationExperiment(_context, experimentSettings);
}

public MulticlassClassificationExperiment CreateMulticlassClassificationExperiment(uint maxExperimentTimeInSeconds)
{
return new MulticlassClassificationExperiment(_context, new MulticlassExperimentSettings()
{
MaxExperimentTimeInSeconds = maxExperimentTimeInSeconds
});
}

public MulticlassClassificationExperiment CreateMulticlassClassificationExperiment(MulticlassExperimentSettings experimentSettings)
{
return new MulticlassClassificationExperiment(_context, experimentSettings);
}

public ColumnInferenceResults InferColumns(string path, string labelColumn = DefaultColumnNames.Label, char? separatorChar = null, bool? allowQuotedStrings = null,
bool? supportSparse = null, bool trimWhitespace = false, bool groupColumns = true)
{
UserInputValidationUtil.ValidateInferColumnsArgs(path, labelColumn);
return ColumnInferenceApi.InferColumns(_context, path, labelColumn, separatorChar, allowQuotedStrings, supportSparse, trimWhitespace, groupColumns);
}

public ColumnInferenceResults InferColumns(string path, ColumnInformation columnInformation, char? separatorChar = null, bool? allowQuotedStrings = null,
bool? supportSparse = null, bool trimWhitespace = false, bool groupColumns = true)
{
columnInformation = columnInformation ?? new ColumnInformation();
UserInputValidationUtil.ValidateInferColumnsArgs(path, columnInformation);
return ColumnInferenceApi.InferColumns(_context, path, columnInformation, separatorChar, allowQuotedStrings, supportSparse, trimWhitespace, groupColumns);
}

public ColumnInferenceResults InferColumns(string path, uint labelColumnIndex, bool hasHeader = false, char? separatorChar = null,
bool? allowQuotedStrings = null, bool? supportSparse = null, bool trimWhitespace = false, bool groupColumns = true)
{
UserInputValidationUtil.ValidateInferColumnsArgs(path);
return ColumnInferenceApi.InferColumns(_context, path, labelColumnIndex, hasHeader, separatorChar, allowQuotedStrings, supportSparse, trimWhitespace, groupColumns);
}
}
}
73 changes: 73 additions & 0 deletions src/Microsoft.ML.Auto/API/BinaryClassificationExperiment.cs
@@ -0,0 +1,73 @@
// Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.ML.Data;

namespace Microsoft.ML.Auto
{
public sealed class BinaryExperimentSettings : ExperimentSettings
{
public BinaryClassificationMetric OptimizingMetric { get; set; } = BinaryClassificationMetric.Accuracy;
public ICollection<BinaryClassificationTrainer> Trainers { get; } =
Enum.GetValues(typeof(BinaryClassificationTrainer)).OfType<BinaryClassificationTrainer>().ToList();
}

public enum BinaryClassificationMetric
{
Accuracy,
AreaUnderRocCurve,
AreaUnderPrecisionRecallCurve,
F1Score,
PositivePrecision,
PositiveRecall,
NegativePrecision,
NegativeRecall,
}

public enum BinaryClassificationTrainer
{
AveragedPerceptron,
FastForest,
FastTree,
LightGbm,
LinearSupportVectorMachines,
LbfgsLogisticRegression,
SdcaLogisticRegression,
SgdCalibrated,
SymbolicSgdLogisticRegression,
}

public sealed class BinaryClassificationExperiment : ExperimentBase<BinaryClassificationMetrics>
{
internal BinaryClassificationExperiment(MLContext context, BinaryExperimentSettings settings)
: base(context,
new BinaryMetricsAgent(context, settings.OptimizingMetric),
new OptimizingMetricInfo(settings.OptimizingMetric),
settings,
TaskKind.BinaryClassification,
TrainerExtensionUtil.GetTrainerNames(settings.Trainers))
{
}
}

public static class BinaryExperimentResultExtensions
{
public static RunDetail<BinaryClassificationMetrics> Best(this IEnumerable<RunDetail<BinaryClassificationMetrics>> results, BinaryClassificationMetric metric = BinaryClassificationMetric.Accuracy)
{
var metricsAgent = new BinaryMetricsAgent(null, metric);
var isMetricMaximizing = new OptimizingMetricInfo(metric).IsMaximizing;
return BestResultUtil.GetBestRun(results, metricsAgent, isMetricMaximizing);
}

public static CrossValidationRunDetail<BinaryClassificationMetrics> Best(this IEnumerable<CrossValidationRunDetail<BinaryClassificationMetrics>> results, BinaryClassificationMetric metric = BinaryClassificationMetric.Accuracy)
{
var metricsAgent = new BinaryMetricsAgent(null, metric);
var isMetricMaximizing = new OptimizingMetricInfo(metric).IsMaximizing;
return BestResultUtil.GetBestRun(results, metricsAgent, isMetricMaximizing);
}
}
}
27 changes: 27 additions & 0 deletions src/Microsoft.ML.Auto/API/ColumnInference.cs
@@ -0,0 +1,27 @@
// Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Collections.Generic;
using System.Collections.ObjectModel;
using Microsoft.ML.Data;

namespace Microsoft.ML.Auto
{
public sealed class ColumnInferenceResults
{
public TextLoader.Options TextLoaderOptions { get; internal set; } = new TextLoader.Options();
public ColumnInformation ColumnInformation { get; internal set; } = new ColumnInformation();
}

public sealed class ColumnInformation
{
public string LabelColumnName { get; set; } = DefaultColumnNames.Label;
public string ExampleWeightColumnName { get; set; }
public string SamplingKeyColumnName { get; set; }
public ICollection<string> CategoricalColumnNames { get; } = new Collection<string>();
public ICollection<string> NumericColumnNames { get; } = new Collection<string>();
public ICollection<string> TextColumnNames { get; } = new Collection<string>();
public ICollection<string> IgnoredColumnNames { get; } = new Collection<string>();
}
}