点击上方蓝字

关注我们

(本文阅读时间:7分钟)

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

微软MVP实验室研究员

项斌

微软全球最有价值专家 MVP,《PyTorch机器学习从入门到实战》作者之一,杭州 FireUG 技术社区发起人之一。超过15+ 年 .NET 开发经历,在数据分析、机器学习、自动化领域近十年从事研发工作。

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 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);

ML.NET 目前在 Github 上以开源项目进行持续更新迭代,最新的版本为1.6。

  • 开源项目示例

    https://github.com/dotnet/machinelearning

ML.NET 特色

ML.NET 支持的热门机器学习任务覆盖众多,包括了传统的分类、回归、聚类,也支持了有关时序和图像神经网络。目前已知的应用场景例如:情绪分析、产品推荐、价格预测、客户分层、对象检测、欺诈检测、峰值检测、图像分类、销量预测等等。

ML.NET 对 .NET 开发者非常友好,它提供了 Visual Studio 扩展 Model Builder, 这是一个可视化的工具套件,以非常低门槛的操作要求即可快速训练出指定任务类型的机器学习模型,并且自动生成相关的源码,方便后续修改和维护。对于喜欢通过代码方式进行机器学习任务的伙伴,官方提供了丰富的文档和示例代码库。

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

  • 文档

    https://docs.microsoft.com/en-us/dotnet/machine-learning

  • 示例代码库

    https://github.com/dotnet/machinelearning-samples

速查手册

通过 AutoML 生成的代码一开始阅读起来会有一点点不习惯,也不利于后续改造代码以适应开发者的实际需要。如果从来没有接触过机器学习的开发者,可能会担心记不住、看不懂、用不惯 ML.NET API 文档中密密麻麻基于专业术语的对象和方法,鉴于收集到如是实际开发者反馈的障碍,作者将 ML.NET API 按经典的机器学习实现步骤,把常用的方法整理成一份图册,并添加了一些代码片段用来帮助快速理解 API 对象和方法的使用规则。另外,图册底部把截止目前 ML.NET 已内置支持的模型训练器和数据转换器列成表格方便掌握完整信息。图册以高清矢量格式的图片分享出来,在编码的时候放在习惯的地方,像开发其他 .NET 应用一样可随时查看,一目了然。

免费领取高清 ML.NET 速查手册

点击下方名片

进入“微软中国MSDN”

官方微信公众号

对话框内回复暗号:

ML.NET 速查手册

微软最有价值专家(MVP)

微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。29年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。

MVP是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。

更多详情请登录官方网站:
https://mvp.microsoft.com/zh-cn

免费领取高清ML.NET速查手册

叮,您有一份ML.NET 速查手册请查收!相关推荐

  1. [WebDev]Web 开发与设计师速查手册大全

    Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 ...

  2. 【收藏】Linux系统常用命令速查手册(附赠PDF档)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,获取<Linux系统常用命令速查手册>.PDF版. 联系小姐姐,备注"liunx命令 ...

  3. 【收藏】Linux系统常用命令速查手册(附PDF下载链接)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,可以在+qq. 2 3 5 53 3 1 0 4 6 备注"liunx命令",即可获取 ...

  4. 135 页的《机器学习速查手册》,公式、图表都有,附下载!

    机器学习中的数学原理和公式推导还是非常重要的,但知识点较为繁杂,且不易整理!今天推荐一份开源的<机器学习速查手册>,并且制作成了电子版 PDF,方便大家查阅~ 这份手册最大的特点就是包含许 ...

  5. linux常用命令速查手册PDF下载

    Linux常用命令速查手册 需要该PDF文档的朋友扫码关注下方二维码[入门小站],后台回复 「1001」 自取 点击下面标题即可获取对应资料 LeetCode刷题开源手册 LeetCode题解[jav ...

  6. linux常用命令速查手册

    Linux常用命令速查手册 需要该PDF文档的朋友扫码关注下方二维码[入门小站],后台回复 「1001」 自取 点击下面标题即可获取对应资料 LeetCode刷题开源手册 LeetCode题解[jav ...

  7. zxl CMD 命令速查手册

    CMD 命令速查手册 1. 摘要 2. 显示或修改文件扩展名关联 3. 显示或更改文件属性. 4. 设置或清除扩展式 CTRL+C 检查. 5. 设置 boot.ini 文件的属性以便控制启动加载. ...

  8. CMD命令速查手册 cmd命令大全

    CMD命令速查手册 cmd命令大全 cmd命令详解如果你想了解本页面是怎么来的 请下载批处理代码 到--其他\CMD命令速查手册 运行 就可以得到本页面 CMD 命令速查手册 雪深 - 2009-03 ...

  9. Linux 系统常用命令速查手册,值得收藏!

    Linux 系统常用命令速查手册,值得收藏! 给大家收集整理了日常常用的 Linux 系统命令,仅供大家参考. 文章目录 Linux 系统常用命令速查手册,值得收藏! 系统信息 date 显示系统日期 ...

最新文章

  1. How is BDOC hold parent removal action in ERP
  2. [翻译]Windows Vista的秘密#11: 删除不可删除的东西
  3. flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...
  4. 定时器Timer的实现
  5. php统计在一个页面停留时间,php记录页面停留时间的代码
  6. WebLogic Clustering Overview Slides
  7. java ee 程序_第一个 JavaEE 应用程序 - JavaWeb 入门开发教程
  8. C# 压缩PDF图片
  9. IJCAI 2021 | 面向睡眠阶段分类的多模态显著性波形检测网络
  10. 循环嵌套之经典图形打印(C语言版)
  11. PHP连接redis并执行redis相关命令的方法详解
  12. 图说区块链 神一样的金融科技与未来社会
  13. 接手了屎一样的代码 怎么办?
  14. (-ent -ant -ment)recipe and recipient
  15. 详解springcloud微服务技术栈(一)
  16. 企业服务业务系统-业务模型梳理(中)
  17. VB编程:While...Wend语句实例漂亮的星星-17
  18. PLMN USIM STK EHPLMN TMSC Server, msc sERVER, IW-MSC Server GMSC IAM
  19. Vue 简易商城开发
  20. echarts画k线图(折线)

热门文章

  1. IIS 日志文件位置
  2. jquery设置滚动条距离页面顶部的高度
  3. 《算法竞赛入门经典》第三章 3.4
  4. 使用Nagios监控esx、esxi、vcenter
  5. asp.net 检测访问者是iphone,android,web(摘录)
  6. Ansible 详解2-Playbook使用
  7. 我的手机 不支持箭头函数
  8. Android推送通知指南(转)
  9. 让你的div可拖动(手机端)
  10. oracle11g导入错误,oracle 11g导入到10g引起的错误