写点什么

微软发布 ML.NET 1.0,可一键添加机器学习模型

  • 2019 年 5 月 08 日
  • 本文字数:2823 字

    阅读完需:约 9 分钟

微软发布ML.NET 1.0,可一键添加机器学习模型

今天,我们很高兴宣布发布ML.NET 1.0。ML.NET 是一个免费的、跨平台的开源机器学习框架,旨在将机器学习(ML)的强大功能引入.NET 应用程序。



ML.NET GitHub:


https://github.com/dotnet/machinelearning


入门 @ http://dot.net/ml


ML.NET 允许你使用 C#或 F#训练、构建和发布自定义机器学习模型,用于情景分析、问题分类、预测、推荐等场景。你可以在我们的ML.NET样品库中查看这些常见的场景和任务。


ML.NET 最初是在微软研究院内部研发,后来演变成许多微软产品使用的重要框架,例如 Windows Defender、Microsoft Office(Powerpoint 设计思想、Excel 图表推荐)、Azure 机器学习、PowerBI 关键影响者等!


自推出以来,许多组织都在使用ML.NET,如 SigParser(垃圾邮件检测)、William Mullens(法律问题分类)和 Evolution 软件(榛子水分检测)。


ML.NET 1.0 版本添加了新的预览功能,如自动机器学习(AutoML)功能,ML.NET CLI和ML.NET Model Builder 等新工具,这意味着,现在为你的应用程序添加机器学习模型只需点击右键!



本文的其余部分重点介绍这些新体验。


  • ML.NET 核心组件

  • 自动机器学习预览

  • ML.NET 模型生成器预览

  • ML.NET CLI 预览

  • ML.NET 入门

  • 未来计划


ML.NET 核心组件

ML.NET 旨在提供终端工作流程,以便在机器学习(预处理、特征工程、建模、评估和操作)的各个步骤中将 ML 用于.NET 应用程序。ML.NET 1.0 提供以下关键组件:


  • 数据表示

  • 基本 ML 数据管道数据类型,如 IDataView——基本数据管道类型

  • 阅读器支持从分隔文本文件或 IEnumerable 对象中读取数据

  • 支持机器学习任务:

  • 二进制分类

  • 多级分类

  • 回归

  • 排序

  • 异常检测

  • 聚类

  • 推荐(预览)

  • 数据转换和特性化

  • 文本

  • 分类

  • 特征选择

  • 规范化和缺失值处理

  • 图像特征化

  • 时间序列(预览)

  • 支持 ONNX 和 TensorFlow 模型集成(预览)

  • 其他

  • 模型理解和解释

  • 用户定义的自定义转换

  • 架构操作

  • 支持数据集操作和交叉验证


自动机器学习预览

如今,机器学习入门学习过程非常艰难。在构建自定义机器学习模型时,你必须确定为你的场景选择机器学习任务(即分类或回归?),将你的数据转换为 ML 算法可以理解的格式(例如文本数据 - >数字向量),并微调这些 ML 算法以达到最佳性能。如果你是 ML 新手,这些步骤中的每一步都会非常艰巨!


自动机器学习通过自动确定如何转换输入数据并选择性能最佳的 ML 算法,使你能够轻松构建一流的自定义 ML 模型,使你的 ML 之旅更加简单。


ML.NET 中的 AutoML 支持处于预览阶段,我们目前支持回归(用于价格预测等场景)和分类(用于情感分析、文档分类、垃圾邮件检测等场景)ML 任务。


你可以使用ML.NET Model Builder、ML.NET CLI 或直接使用 AutoML API(可在此处找到样本)三种形式在 ML.NET 中体验 AutoML。


对于不熟悉机器学习的用户,我们建议从 Visual Studio中的ML.NET模型构建器和任何平台上的ML.NET CLI 开始。AutoML API 对于你想要动态构建模型的场景也非常方便。


模型生成器预览

为了简化.NET 开发人员构建 ML 模型的过程,我们今天也很高兴地发布 ML.NET 模型构建器。使用 ML.NET 模型构建器,只需右键单击即可将机器学习添加到你的应用程序中!


Model Builder 是一个简单的 UI 工具,供开发人员使用自己的数据集,通过 AutoML 使构建最佳的 ML 模型。除此之外,Model Builder 还可以生成模型训练和模型消耗代码,以达到最佳性能,让你快速将 ML 添加到现有应用程序中。



ML.NET 模型构建器


了解有关ML.NET模型构建器的更多信息


Model Builder 目前处于预览阶段,欢迎试用并告诉我们你的想法!


ML.NET CLI 预览

ML.NET CLI(命令行界面)是我们今天推出的另一个新工具!


ML.NET CLI 是一个 dotnet 工具,允许使用 AutoML 和 ML.NET 生成 ML.NET 模型。ML.NET CLI 可以快速遍历你的数据集以获取特定的 ML 任务(目前支持回归和分类)并生成最佳模型。


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


ML.NET CLI 是跨平台的,可以轻松添加到.NET CLI。Model Builder Visual Studio扩展还使用ML.NET CLI 提供模型构建器功能。


你可以通过此命令安装ML.NET CLI。


dotnet tool install -g mlnet
复制代码


下图显示了ML.NET CLI 构建情感分析数据集。



了解有关ML.NET CLI的更多信息


ML.NET CLI 目前也处于预览状态,欢迎试用并分享你的想法!


开始吧!

从头开始使用 ML.NET 很简单,你可以通过几个简单的步骤来完成,如下所示。 下面的示例显示了如何使用 ML.NET 进行情绪分析。


//Step 1. Create a ML Contextvar ctx = new MLContext(); //Step 2. Read in the input data for model trainingIDataView dataReader = ctx.Data    .LoadFromTextFile<MyInput>(dataPath, hasHeader: true); //Step 3. Build your estimatorIEstimator<ITransformer> est = ctx.Transforms.Text    .FeaturizeText("Features", nameof(SentimentIssue.Text))    .Append(ctx.BinaryClassification.Trainers        .LbfgsLogisticRegression("Label", "Features")); //Step 4. Train your ModelITransformer trainedModel = est.Fit(dataReader); //Step 5. Make predictions using your modelvar predictionEngine = ctx.Model    .CreatePredictionEngine<MyInput, MyOutput>(trainedModel); var sampleStatement = new MyInput { Text = "This is a horrible movie" }; var prediction = predictionEngine.Predict(sampleStatement);
复制代码


你还可以探索各种其他学习资源,如 ML.NET的教程和资源,以及ML.NET示例、演示产品推荐、异常检测和更多实际操作等流行方案


ML.NET 的下一步

今天发布ML.NET 1.0 的同时,我们的团队已经在努力为ML.NET 1.0 版发布以下功能。


  • 其他 ML 场景的 AutoML 体验

  • 改进了对深度学习场景的支持

  • 支持其他其他来源,如 SQL Server、CosmosDB、Azure Blob 存储等。

  • 在 Azure 上横向扩展以进行模型训练和消耗

  • 使用模型构建器和 CLI 时,支持其他 ML 方案和功能

  • 用于 Apache Spark 和 ML.NET 的.NET 大规模机器学习的本地集成

  • .NET 中的新 ML 类型,例如数据帧


感谢创建者

在此,我们特别鸣谢该项目的贡献者,是他们的努力让.NET 开发人员可以使用机器学习。


amiteshenoy,beneyal,bojanmisic,Caraul,dan-drews,DAXaholic,dhilmathy,dzban2137,elbruno,endintiers,f1x3d,feiyun0112,forki,harshsaver,


helloguo,hvitved,Jongkeun,JorgeAndd,JoshuaLight,jwood803,kant2002,kilick,Ky7m,llRandom,malik97160,MarcinJuraszek,mareklinka,


Matei13,mfaticaearnin,mnboos,nandaleite,Nepomuceno nihitb06,Niladri24dutta,PaulTFreedman,Pielgrin,pkulikov,Potapy4,Racing5372,


rantri,rantri,rauhs,robosek,ross-p-smith,SolyarA,Sorrien,suhailsinghbains,terop,ThePiranha,Thomas-S-B,timitoc,tincann,v-tsymbalistyi,


van-tienhoang,veikkoeeva 和 yamachu


非常感谢,


ML.NET 团队


原文链接:


https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/


2019 年 5 月 08 日 11:204742
用户头像

发布了 98 篇内容, 共 59.6 次阅读, 收获喜欢 285 次。

关注

评论

发布
暂无评论
发现更多内容

12年技术老兵整理的Alibaba“MySQL 学习笔记”带你轻松拿捏MySQL

Java 编程 架构 面试 程序人生

使用PaddleNLP打造精准文献检索系统,看万方系统升级放大招!

百度大脑

人工智能 nlp 飞桨

Vue进阶(幺幺幺):实现浏览器全屏

No Silver Bullet

Vue 9月日更

影像篡改与识别(三):人工智能时代

腾讯安全云鼎实验室

AI 影像识别

腾讯云分布式数据库TDSQL的十年自主可控之路

腾讯云数据库

数据库 tdsql

自助售货机主板要注意哪几个方面?

双赞工控

安卓主板

跟着我乔鲁诺学面试(大误)

姬翔

9月日更

TDSQL多集群下的自动化和交付

腾讯云数据库

数据库 tdsql

如何实现 iOS 短视频跨页面的无痕续播?

阿里云视频云

ios 阿里云 Video播放器 视频云

T-TDSQL的典型应用

腾讯云数据库

数据库 tdsql

阿里菜鸟+腾讯IEG面经(阿里5面,腾讯8面)无限秽土转生

Java 程序员 架构 面试 计算机

数据湖特点

奔向架构师

数据湖 9月日更

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

T-TDSQL的核心技术

腾讯云数据库

数据库 tdsql

深入理解 Linux 的 epoll 机制及epoll原理

Linux服务器开发

网络编程 epoll Linux服务器开发 IO多路复用 Linux后台开发

GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘

华为云数据库小助手

华为云 GaussDB 华为云数据库 GaussDB(for MySQL)

百分点认知智能实验室:智能校对的技术原理和实践

百分点科技技术团队

JVM专题01-类加载机制详解

JustRunning

javacore JVM 深入理解JVM Java类加载

多线程环境下,程序运行真是危机四伏

Java 架构 面试 后端 多线程

挑战进阶教程,和MindSpore更近一步!

Geek_6cdeb6

mindspore

Flutter 多引擎支持 PlatformView 以及线程合并解决方案

字节跳动终端技术

字节跳动 大前端 跨平台 火山引擎

关于技术团队搭建&管理的一些思考

LigaAI

团队管理

T-TDSQL的核心理念,为数据赋能

腾讯云数据库

数据库 tdsql

多租户的共享与隔离

金蝶天燕云

云计算 多租户

TDSQL自动交付方案: 全球灵活部署,最快9分钟

腾讯云数据库

数据库 tdsql

TDSQL原创技术的出发点

腾讯云数据库

数据库 tdsql

云原生架构下的持续交付实践

百度Geek说

架构 云原生 后端

爬虫初探: 重定向处理与新闻明细页解析

程序员架构进阶

Python 实战问题 9月日更 spider

如何利用极狐GitLab CI/CD 完成 Jenkins 的迁移

极狐GitLab

CI/CD #GitLab

低代码在这些方面充满优势

低代码小观

程序员 低代码 企业管理 开发平台 低代码开发

微软发布ML.NET 1.0,可一键添加机器学习模型_AI_微软官方博客_InfoQ精选文章