ML.NET

开放源代码的跨平台机器学习框架

开始 Model Builder

Windows、Linux 和 macOS 上均支持

//Step 1. Create an ML Context
var ctx = new MLContext();

//Step 2. Read in the input data from a text file for model training
IDataView trainingData = ctx.Data
    .LoadFromTextFile<ModelInput>(dataPath, hasHeader: true);

//Step 3. Build your data processing and training pipeline
var pipeline = ctx.Transforms.Text
    .FeaturizeText("Features", nameof(SentimentIssue.Text))
    .Append(ctx.BinaryClassification.Trainers
        .LbfgsLogisticRegression("Label", "Features"));

//Step 4. Train your model
ITransformer trainedModel = pipeline.Fit(trainingData);

//Step 5. Make predictions using your trained model
var predictionEngine = ctx.Model
    .CreatePredictionEngine<ModelInput, ModelOutput>(trainedModel);

var sampleStatement = new ModelInput() { Text = "This is a horrible movie" };

var prediction = predictionEngine.Predict(sampleStatement);
//Step 1. Create an ML Context
let ctx = MLContext()

//Step 2. Read in the input data from a text file
let trainingData = ctx.Data.LoadFromTextFile<ModelInput>(dataPath, hasHeader=true)

//Step 3. Build your data processing and training pipeline
let scope = ctx.BinaryClassification.Trainers.LbfgsLogisticRegression("Label", "Features")
let pipeline = ctx.Transforms.Text.FeaturizeText("Features", "Text").Append(scope)

//Step 4. Train your model
let trainedModel = pipeline.Fit(trainingData)

//Step 5. Make predictions using your model
let predictionEngine = ctx.Model.CreatePredictionEngine<ModelInput, ModelOutput>(trainedModel)

let sampleStatement = { Label = false; Text = "This is a horrible movie" }

let prediction = predictionEngine.Predict(sampleStatement)

为 .NET 开发者生成

使用 ML.NET,无需离开 .NET 生态系统,便可以使用 C# 或 F# 创建自定义 ML 模型。

ML.NET 可供你重新使用作为 .NET 开发人员已经拥有的所有知识、技能、代码和库,以便你可以轻松地将机器学习集成到 Web、移动、桌面、游戏和物联网应用中。

深入了解: 什么是 ML.NET?

使用 AutoML 简化自定义ML

ML.NET 提供 Model Builder(简单的 UI 工具)和 ML.NET CLI,使生成自定义 ML 模型变得非常容易。

这些工具使用最前沿的技术自动化 ML(AutoML),该技术可将为机器学习场景构建最佳性能模型这一流程自动化。你只需要加载数据,AutoML 便会负责模型构建流程的剩余工作。

浏览 ML.NET Model Builder
ML.NET Model Builder 提供了用于在 Visual Studio 中构建机器学习模型的可视界面。

使用 TensorFlow & 进行扩展 更多

ML.NET 被设计为一个可扩展平台,因此可以使用其他流行的 ML 框架(TensorFlow、ONNX、Infer.NET 等)并访问更多机器学习场景,如图像分类、物体检测等。

在大约 900 MB 的 Amazon 审阅数据集上进行训练,ML.NET 生成的模型准确率为 93%,scikit-learn 为 92%,H2O 为 85%。ML.NET 花了 11 分钟来训练和测试模型,scikit-learn 花了 66 分钟,而 H2O 花了 105 分钟。

数据来源于使用 ML.NET 在 Microsoft 进行机器学习 文章。情绪分析结果,使用约 900 MB 的 Amazon 审阅数据集。较高准确度与较短运行时间更好。

高性能和高准确性

使用 9GB 的 Amazon 评审数据集,ML.NET 以 95% 的准确率训练了情绪分析模型。由于内存错误,其他热门机器学习框架无法处理数据集。在 10% 的数据集上进行训练,为了让所有框架完成训练,ML.NET 展示了最高的速度和准确性。

性能评估在其他机器学习方案中找到类似的结果,包括点击率预测和航班延迟预测。

阅读 ML.NET 性能白皮书

准备好开始使用了吗?

分步教程将帮助你在计算机上运行 ML.NET。

开始