本篇文章简要介绍 ML.NET 背景和面向 .NET 开发的特色性能,以及典型的机器学习编码示例,并分享本人整顿的 ML.NET API 速查手册。

ML.NET 简介

ML.NET 是面向.NET开发人员的跨平台机器学习框架,它具备在联机或本地环境中将机器学习模型集成到 .NET 应用程序中的能力。

2002 年微软启动有一个钻研我的项目命名为 TMSN,其意在“Test mining search and navigation”,起初它被改名为 TLC(The learning code)。ML.NET 正是派生自 TLC 库,最后被用于微软的外部产品。

ML.NET 的外围既能够通过指定算法来训练自定义机器学习模型,也能够导入预训练的 TensorFlow 和 ONNX 模型持续训练。生成模型后,能够将其增加到应用程序中进行预测。ML.NET 反对在应用 .NET Core/.NET Framework 的 Windows、Linux 和 macOS 上运行,所有平台均反对 64 位,此外 Windows 平台反对 32 位,但 TensorFlow、LightGBM 和 ONNX 相干性能除外。

ML.NET 集成了泛滥支流的转换器、算法库,通过 API 提供了丰盛的数据处理对象和算法评估器,并且对 Infer.NET、NimbusML、Scikit-Learn、TensorFlow 等机器学习相干的包提供了不便地扩大机制。如果您是一位 .NET 开发者,您将很轻松地上手应用,并且将成绩无缝集成到 .NET Core 应用程序中,特地是 ASP.NET Core 的 Web 利用中实现一些高级的智能服务。

逻辑回归模型示例

简略示例训练一个用于二分类的逻辑回归模型代码如下:

//Step 1. Create an ML Contextvar ctx = new MLContext();//Step 2. Read in the input data from a text file for model trainingIDataView trainingData = ctx.Data    .LoadFromTextFile<ModelInput>(dataPath, hasHeader: true);//Step 3. Build your data processing and training pipelinevar pipeline = ctx.Transforms.Text    .FeaturizeText("Features", nameof(SentimentIssue.Text))    .Append(ctx.BinaryClassification.Trainers        .LbfgsLogisticRegression("Label", "Features"));//Step 4. Train your modelITransformer trainedModel = pipeline.Fit(trainingData);//Step 5. Make predictions using your trained modelvar predictionEngine = ctx.Model    .CreatePredictionEngine<ModelInput, ModelOutput>(trainedModel);var sampleStatement = new ModelInput() { Text = "This is a horrible movie" };var prediction = predictionEngine.Predict(sampleStatement);

ML.NET 目前在 Github 上以开源我的项目(https://github.com/dotnet/mac...)进行继续更新迭代,最新的版本为1.6。

ML.NET 特色

ML.NET 反对的热门机器学习工作笼罩泛滥,包含了传统的分类、回归、聚类,也反对了无关时序和图像神经网络。目前已知的利用场景例如:情绪剖析、产品举荐、价格预测、客户分层、对象检测、欺诈检测、峰值检测、图像分类、销量预测等等。

ML.NET 对 .NET 开发者十分敌对,它提供了 Visual Studio 扩大 Model Builder, 这是一个可视化的工具套件,以非常低门槛的操作要求即可疾速训练出指定工作类型的机器学习模型,并且主动生成相干的源码,不便后续批改和保护。对于喜爱通过代码形式进行机器学习工作的搭档,官网提供了丰盛的文档(https://docs.microsoft.com/en...)和示例代码库(https://github.com/dotnet/mac...)。

另外,ML.NET 针对 CLI 也提供了命令行工具,而且是反对 AutoML 的,使得常见的机器学习场景实现零编码。

速查手册

通过 AutoML 生成的代码一开始浏览起来会有一点点不习惯,也不利于后续革新代码以适应开发者的理论须要。如果素来没有接触过机器学习的开发者,可能会放心记不住、看不懂、用不惯 ML.NET API 文档中稀稀拉拉基于专业术语的对象和办法,鉴于收集到如是理论开发者反馈的阻碍,作者将 ML.NET API 按经典的机器学习实现步骤,把罕用的办法整顿成一份图册,并增加了一些代码片段用来帮忙疾速了解 API 对象和办法的应用规定。另外,图册底部把截止目前 ML.NET 已内置反对的模型训练器和数据转换器列成表格不便把握残缺信息。图册以高清矢量格局的图片分享进去,在编码的时候放在习惯的中央,像开发其余 .NET 利用一样可随时查看,高深莫测。

速查手册高清版本下载:https://beanhsiang.github.io/...