ML.NET---.NET下的机器学习引擎(简介)
ML.NET 是一个跨平台的开源机器学习框架,它可以使 .NET 开发人员更容易的开展机器学习工作.
ML.NET 允许 .NET 开发人员开发自己的模型,即使没有机器学习的开发经验,也可以很容易的将自定义的机器学习模型嵌入到其应用程序中。
ML.NET 最初是在 microsoft research 中被开发的, 在过去十年里它已经发展成为一个重要的框架, 并在 microsoft 的许多产品组 (如 windows、bing、powerpoint、excel 等) 中被广泛使用。
ML.NET 支持机器学习任务, 如分类 (例如: 支持文本分类、情绪分析) 和回归 (例如, 价格预测)。
安装
ML.NET 使用 .NET Core, 可以使其运行在 Windows, Linux, and macOS 平台下, Windows 平台下使用 .NET Framework. 64 位框架 。 32 位 只可以在 Windows 平台下获取支持,但是 TensorFlow, LightGBM, ONNX 等相关功能不能使用。
当前版本是0.9 版本信息
首先,确保你已经安装 .NET Core 2.1 或者更新的版本. ML.NET 也可以工作在 .NET Framework 4.6.1 或者更新的版本, 但是推荐使用 4.7.2 或者更新的版本.
一旦你创建好了一个APP,你就可以安装通过.NET Core CLI或者NuGet安装ML.NET:
dotnet add package Microsoft.ML
通过 NuGet 包管理器安装:
Install-Package Microsoft.ML
你也可以在Visual Studio的NuGet管理器中安装Microsoft.ML包。
创建
从源码创建 ML.NET 请访问 开发者向导.
Debug | Release | |
---|---|---|
Linux | ||
macOS | ||
Windows x64 | ||
Windows x86 | ||
Core 3.0 |
示例
下面是一个通过文本数据来进行预测情绪的示例。
var mlContext = new MLContext();
var reader = mlContext.Data.TextReader(new TextLoader.Arguments
{
Column = new[] {
new TextLoader.Column("SentimentText", DataKind.Text, 1),
new TextLoader.Column("Label", DataKind.Bool, 0),
},
HasHeader = true,
Separator = ","
});
var data = reader.Read(dataPath);
var learningPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features")
.Append(mlContext.BinaryClassification.Trainers.FastTree());
var model = learningPipeline.Fit(data);
现在通过上面训练的模型进行情绪预测
var predictionEngine = model.CreatePredictionEngine<SentimentData, SentimentPrediction>(mlContext);
var prediction = predictionEngine.Predict(new SentimentData
{
SentimentText = "Today is a great day!"
});
Console.WriteLine("prediction: " + prediction.Prediction);
这里有一本 cookbook 教你怎样在不同的场景中使用这些API 点击这里学习.
API 文档
参见 ML.NET API 参考文档.
示例
ML.NET 示例库 你可以在这里学习具体的使用场景和方法。
License
ML.NET 遵守以下许可 MIT license.