随着谷歌,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 。

参考

最新文章

  1. PHP反向代理-百度图片
  2. 关于localstorage的几个测试
  3. MySQL下划线特殊字符(Like 语句)
  4. iphone,pad等真机不被xcode识别,解决方法
  5. 在CentOS里使用MySQL Connector/C++
  6. 【BZOJ 1066】[SCOI2007]蜥蜴
  7. synchronized与static synchronized 差异
  8. 获取url参数和时间格式化
  9. 024_mac配置屏保命令
  10. Vue(二十五)打包后路径报错问题
  11. Unity暂停游戏功能
  12. Xml的转义字符--约束-xml解析器
  13. timeline server介绍
  14. 滚动条事件window.onscroll
  15. 在win10下使用docker快速搭建ruby开发环境
  16. 兼容主流浏览器的css渐变色
  17. Redis在windows下安装过程(转载)
  18. C语言输入语句scanf与fgets linux下
  19. JSP动态合并单元格
  20. WinDirStat is a disk usage statistics viewer

热门文章

  1. Ionic + AngularJS angular-translate 国际化本地化解决方案
  2. OpenCV 入门示例之二:播放 AVI 视频
  3. ASP.NET MVC EXTJS 通用主菜单框架
  4. inode ls -li 显示索引节点
  5. windows IDA 调试SO
  6. thinkphp3.2独立分组的建立
  7. github 版本控制 android studio
  8. H264 各种profile
  9. Jmeter创建一个简单的http接口用例
  10. 修改SO