专栏首页张善友的专栏.NET开发人员如何开始使用ML.NET

.NET开发人员如何开始使用ML.NET

随着谷歌,Facebook发布他们的工具机器学习工具Tensorflow 2和PyTorch ,微软的CNTK 2.7之后不再继续更新(https://docs.microsoft.com/zh-cn/cognitive-toolkit/releasenotes/cntk_2_7_release_notes),Build 2019 微软也发布了ML.NET 1.0 ,这是一个面向机器学习开发者的新框架。可以说2019年是机器学习社区普及化的一年,所有的这些发布清楚地表明了IT行业的发展方向。从数据集改进模型到新的模型更新,以及优化硬件。

ML.NET一直在微软的研究部门的工作。这些创新已经用于他们自己的产品,如Windows Defender,Microsoft Office(Powerpoint设计理念,Excel图表推荐),Azure机器学习,PowerBI。 ML.NET旨在提供终端工作流程,以便在机器学习(预处理,特征工程,建模,评估和操作)的各个步骤中将ML用于.NET应用程序。

ML.NET 1.0提供以下关键组件:

  • 数据表示
  • 机器学习任务(分类,回归,异常检测等)
  • 数据特征工程

机器学习模型应该让分析师的生活更轻松,现在甚至可以构建这些模型,因为新框架的设计考虑了AutoML。除了通常的机器学习任务外,ML.NET还支持AutoML。

对于机器学习初学者,Microsoft开发人员建议从Visual Studio中的ML.NET模型构建器和任何平台上的ML.NET CLI开始。对于可以随时构建模型的场景,AutoML API也非常方便。

使用ML.NET模型构建器,只需右键单击即可向应用程序添加机器学习。

资料来源:微软

在命令行使用ML.NET

还引入了另一个工具ML.NET CLI(命令行工具),它允许使用AutoML和ML.NET生成ML.NET模型。ML.NET CLI快速遍历特定ML任务的数据集(目前支持回归和分类)并生成最佳模型。

CLI除了生成最佳模型外,还允许用户为最佳性能模型生成模型训练和 消费模型代码。

ML.NET CLI是跨平台的,是.NET CLI 的全局工具。Visual Studio扩展ML.NET Model Builder 还使用ML.NET CLI提供模型构建器功能。

安装ML.NET CLI:

dotnet tool install -g mlnet

这是使用回归预测出租车票价的代码

加载数据集

IDataView trainingDataView = mlContext.Data.LoadFromTextFile(TrainDataPath, hasHeader: true);

IDataView testDataView = mlContext.Data.LoadFromTextFile(TestDataPath, hasHeader: true);

运行AutoML二进制分类

ExperimentResult experimentResult = mlContext.Auto().CreateRegressionExperiment(ExperimentTime).Execute(trainingDataView, LabelColumnName, progressHandler: new RegressionExperimentProgressHandler());

模型评估

ITransformer model = experimentResult.BestRun.Model;

并使用测试数据集评估其质量(taxi-fare-test.csv)。

Regression.Evaluate() 计算已知票价与模型预测值之间的差异,以生成各种指标。

var predictions = trainedModel.Transform(testDataView);

var metrics = mlContext.Regression.Evaluate(predictions,scoreColumnName:“Score”);

创建预测引擎

var predEngine = mlContext.Model.CreatePredictionEngine<TaxiTrip, TaxiTripFarePrediction>(model);

计算分数

var predictedResult = predEngine.Predict(taxiTripSample);

上面是使用Visual Studio内部的模型构建器以及CLI命令测试AutoML,还有一个API可以在.Net应用程序中使用它,使用非常简单,添加[ Microsoft.ML.AutoML ] nuget包到项目中就可以使用API 进行工作

ML.Net示例仓库中有一整套示例。可以重用了Common文件夹中的一些类来通过API使用AutoML 。

参考

  • 如何使用ML.NET自动化机器学习API
  • 使用CLI自动生成二进制分类器
  • 机器学习模型生成器
  • 如何安装ML.NET命令行界面(CLI)工具
  • 机器学习.Net样本

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微软发布ML.NET 1.0

    原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/

    张善友
  • .NET机器学习 ML.NET 1.4预览版和模型生成器更新

    ML.NET 是面向.NET开发人员的开源和跨平台机器学习框架。 ML.NET 还包括Model Builder (一个简单的UI工具)和 CLI ,使...

    张善友
  • ML-Framework:ML.NET 0.3 带来新组件

    ML.NET在今年微软在Build 2018 会议上宣布的机器学习框架现已正式推出0.3版本 https://github.com/dotnet/machine...

    张善友
  • 译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)

    我们很高兴地宣布ML.NET 1.2 和模型生成器和 CLI 的更新。ML.NET是 .NET 开发人员的开源和跨平台机器学习框架。ML.NET还包括模型生成器...

    Edi Wang
  • 微软发布ML.NET 1.0

    原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/

    张善友
  • 自动驾驶方程式赛车,微软发布机器学习开源框架 | AI一周学术

    呜啦啦啦啦啦啦啦大家好,本周的AI Scholar Weekly栏目又和大家见面啦!

    大数据文摘
  • .NET Core 给使用.NET的公司所带来的机遇

    推广无可厚非,但是这种以标题党形式贬低.NET,让几十万的.NETer 蒙羞是一种无耻的操作,何况余晟 是一位小有名气的博主,这篇文章转发在朋友圈,光是这个标题...

    张善友
  • .NET 基金会项目介绍-.NET Core

    .NET Core 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。

    newbe36524
  • 【翻译】.NET 5 Preview 1 发布

    去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B...

    李明成
  • 机器学习实战之风功率预测

    目前机器学习与气象数据的结合已经在实际生产中有了应用,比如风电场风功率预测、光伏功率预测和负荷预测。本文以风功率预测作为一个小栗子: 风功率预测是...

    zhangqibot

扫码关注云+社区

领取腾讯云代金券