ML.NET is an open source and cross-platform machine learning framework for .NET.
Перейти к файлу
Dan Moseley 622e41ed8d
Update README to add 32 bit support in 0.7 (#1559)
* Update README to add 32 bit support in 0.7

Also change .NET Core 2.0 - >2.1 as 2.0 is now out of support.

* Update README.md

* Update README.md

* Update README.md
2018-11-09 09:59:34 -08:00
build Publish test artifacts on timeout and not just failure (#1561) 2018-11-07 11:35:17 -08:00
docs Update docs/samples/Microsoft.ML.Samples/Dynamic/ConcatTransform.cs (#1552) 2018-11-08 16:21:08 -08:00
pkg Adding third party notice and license to all NuGets (#1486) 2018-11-02 13:23:57 -07:00
src Fixing typo in ExtractWordEmbeddings (#1573) 2018-11-09 09:41:48 -08:00
test Fixing typo in ExtractWordEmbeddings (#1573) 2018-11-09 09:41:48 -08:00
tools-local/Microsoft.ML.InternalCodeAnalyzer Add the `BestFriend` attribute for restricting cross-assembly internal access (#1520) 2018-11-05 10:20:16 -08:00
.gitattributes Initial commit 2018-05-03 17:22:00 -07:00
.gitignore switch housing dataset to wine (#170) 2018-05-23 16:22:12 -07:00
.gitmodules Making MF to be a part of ML.NET (#1263) 2018-10-25 22:48:11 -07:00
.vsts-dotnet-ci.yml Make whitening tests work on hosted macs (#1530) 2018-11-06 10:30:10 -08:00
BuildToolsVersion.txt Update buildtools to 3.0.0-preview1-03129-01 (#767) 2018-08-29 17:10:25 -07:00
CONTRIBUTING.md Fixed a spelling from adressing to addressing. (#651) 2018-08-06 08:24:59 -07:00
Directory.Build.props Move towards being able to build for x86 (#1008) 2018-10-10 16:21:10 -07:00
Directory.Build.targets Update documentation for LightGBM and add missing binary references to console app. (#452) 2018-07-02 13:51:32 -07:00
DotnetCLIVersion.txt Move to netcoreapp2.1 (#690) 2018-08-21 11:31:35 -05:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md 2018-05-06 20:32:33 -07:00
LICENSE Initial commit 2018-05-03 17:22:00 -07:00
Microsoft.ML.sln Making MF to be a part of ML.NET (#1263) 2018-10-25 22:48:11 -07:00
PULL_REQUEST_TEMPLATE.md Update PULL_REQUEST_TEMPLATE.md 2018-05-06 20:43:27 -07:00
README.md Update README to add 32 bit support in 0.7 (#1559) 2018-11-09 09:59:34 -08:00
ROADMAP.md Grammar fixes in documentation and comments (#1179) 2018-10-08 19:22:09 -07:00
THIRD-PARTY-NOTICES.TXT Making MF to be a part of ML.NET (#1263) 2018-10-25 22:48:11 -07:00
build.cmd Fixes build errors caused by spaces in the project path (#196) 2018-05-23 11:44:22 -07:00
build.proj Make whitening tests work on hosted macs (#1530) 2018-11-06 10:30:10 -08:00
build.sh Fixes build error when path contains space on Linux (#247) 2018-05-30 09:36:52 -07:00
config.json Fix test output during CI. (#652) 2018-08-06 15:03:09 -05:00
dir.traversal.targets Initial commit 2018-05-03 17:22:00 -07:00
init-tools.cmd Introducing PR verification x86 CI build (#1309) 2018-10-26 09:32:54 -07:00
init-tools.msbuild Initial commit 2018-05-03 17:22:00 -07:00
init-tools.sh Update buildtools to 3.0.0-preview1-03129-01 (#767) 2018-08-29 17:10:25 -07:00
run.cmd Moves dotnet-server shutdown to official build yml file (#1432) 2018-10-29 22:11:12 -07:00
run.sh Fixes build error when path contains space on Linux (#247) 2018-05-30 09:36:52 -07:00

README.md

Machine Learning for .NET

ML.NET is a cross-platform open-source machine learning framework which makes machine learning accessible to .NET developers.

ML.NET allows .NET developers to develop their own models and infuse custom machine learning into their applications, using .NET, even without prior expertise in developing or tuning machine learning models.

ML.NET was originally developed in Microsoft Research, and evolved into a significant framework over the last decade and is used across many product groups in Microsoft like Windows, Bing, PowerPoint, Excel and more.

ML.NET enables machine learning tasks like classification (for example: support text classification, sentiment analysis) and regression (for example, price-prediction).

Along with these ML capabilities, this first release of ML.NET also brings the first draft of .NET APIs for training models, using models for predictions, as well as the core components of this framework such as learning algorithms, transforms, and ML data structures.

Installation

NuGet Status

ML.NET runs on Windows, Linux, and macOS using .NET Core, or Windows using .NET Framework. 64 bit is supported on all platforms. 32 bit is supported on Windows, except for TensorFlow, LightGBM, and ONNX related functionality.

The current release is 0.7. Check out the release notes and blog post to see what's new.

First, ensure you have installed .NET Core 2.1 or later. ML.NET also works on the .NET Framework 4.6.1 or later, but 4.7.2 or later is recommended.

Once you have an app, you can install the ML.NET NuGet package from the .NET Core CLI using:

dotnet add package Microsoft.ML

or from the NuGet package manager:

Install-Package Microsoft.ML

Or alternatively, you can add the Microsoft.ML package from within Visual Studio's NuGet package manager or via Paket.

Daily NuGet builds of the project are also available in our MyGet feed:

https://dotnet.myget.org/F/dotnet-core/api/v3/index.json

Building

To build ML.NET from source please visit our developers guide.

x64 Debug x64 Release
Linux x64-debug x64-release
macOS x64-debug x64-release
Windows x64-debug x64-release

Contributing

We welcome contributions! Please review our contribution guide.

Community

Please join our community on Gitter Join the chat at https://gitter.im/dotnet/mlnet

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.

Examples

Here's an example of code to train a model to predict sentiment from text samples. (You can find a sample of the legacy API here):

var env = new LocalEnvironment();
var reader = TextLoader.CreateReader(env, ctx => (
        Target: ctx.LoadFloat(2),
        FeatureVector: ctx.LoadFloat(3, 6)),
        separator: ',',
        hasHeader: true);
var data = reader.Read(new MultiFileSource(dataPath));
var classification = new MulticlassClassificationContext(env);
var learningPipeline = reader.MakeNewEstimator()
    .Append(r => (
    r.Target,
    Prediction: classification.Trainers.Sdca(r.Target.ToKey(), r.FeatureVector)));
var model = learningPipeline.Fit(data);

Now from the model we can make inferences (predictions):

var predictionFunc = model.MakePredictionFunction<SentimentInput, SentimentPrediction>(env);
var prediction = predictionFunc.Predict(new SentimentData
{
    SentimentText = "Today is a great day!"
});
Console.WriteLine("prediction: " + prediction.Sentiment);

A cookbook that shows how to use these APIs for a variety of existing and new scenarios can be found here.

Samples

We have a repo of samples that you can look at.

License

ML.NET is licensed under the MIT license.

.NET Foundation

ML.NET is a .NET Foundation project.

There are many .NET related projects on GitHub.

  • .NET home repo - links to 100s of .NET projects, from Microsoft and the community.