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

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

https://github.com/dotnet/machinelearning

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

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

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

自从推出以来,许多组织都在使用ML.NET,如SigParser(垃圾邮件检测), William Mullens(法律问题分类)Evolution软件(榛子水分检测)。您可以在我们的ML.NET客户展示中使用ML.NET跟踪这些和许多其他组织的旅程。这些用户告诉我们,ML.NET的易用性,重用.NET技能的能力以及将其技术堆栈完全保留在.NET中是他们使用ML.NET的主要驱动因素。

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


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

ML.NET核心组件

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

  • 数据表示
    • 基本ML数据管道数据类型,如IDataView - 基本数据管道类型
    • 支持从分隔文本文件或IEnumerable对象中读取数据
  • 支持机器学习任务:
    • 二进制分类
    • 多级分类
    • 回归
    • 排行
    • 异常检测
    • 聚类
    • 推荐(预览)
  • 数据转换和特色化
    • 文本
    • 分类
    • 特征选择
    • 规范化和缺失值处理
    • 图像特征化
    • 时间序列(预览)
    • 支持ONNX和TensorFlow模型集成(预览)
  • 其他
    • 模型理解和解释
    • 用户定义的自定义转换
    • 架构操作
    • 支持数据集操作和交叉验证
自动机器学习预览

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

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

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

您可以使用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模型构建器的更多信息

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 Context

var ctx = new MLContext();

//Step 2. Read in the input data for model training

IDataView dataReader = ctx.Data

.LoadFromTextFile<MyInput>(dataPath, hasHeader: true);

//Step 3. Build your estimator

IEstimator<ITransformer> est = ctx.Transforms.Text

.FeaturizeText("Features", nameof(SentimentIssue.Text))

.Append(ctx.BinaryClassification.Trainers

.LbfgsLogisticRegression("Label", "Features"));

//Step 4. Train your Model

ITransformer trainedModel = est.Fit(dataReader);

//Step 5. Make predictions using your model

var 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版发布以下功能。

  • 其他机器学习场景的AutoML体验
  • 改进了对深度学习场景的支持
  • 支持其他其他来源,如SQL Server,CosmosDB,Azure Blob存储等。
  • 在Azure上横向扩展以进行模型培训和消费
  • 使用模型构建器和CLI时,支持其他ML方案和功能
  • 用于Apache Spark和ML.NET的.NET大规模机器学习的本机集成
  • .NET中的新ML类型,例如DataFrame
你帮忙建了它

特别呼吁这些令人惊叹的贡献者,他们与我们一起开始使用ML.NET为.NET开发人员提供机器学习。

amiteshenoy,  beneyal,  bojanmisic,  Caraul,  dan-drews,  DAXaholic,  dhilmathy,  dzban2137,  elbruno,  endintiers,  f1x3dfeiyun0112,  forki,  harshsaver
helloguo,  hvitved,  Jongkeun,  JorgeAndd,  JoshuaLight,  jwood803,  kant2002,  kilick,  Ky7mllRandom,  malik97160,  MarcinJuraszek,  mareklinka
Matei13,  mfaticaearnin,  mnboos,  nandaleite,  Nepomuceno nihitb06Niladri24dutta,  PaulTFreedman,  Pielgrin,  pkulikov,  Potapy4,  Racing5372
rantri,  rantri,  rauhs,  robosek,  ross-p-smith,  SolyarASorrien,  suhailsinghbainsterop,  ThePiranha,  Thomas-SB,  timitoc,  tincann,  v-tsymbalistyi
van-tienhoang,  veikkoeevayamachu

如果您还没有,请试试ML.NET!

您的反馈对于我们帮助塑造ML.NET并使.NET成为机器学习的绝佳平台至关重要。

谢谢,
ML.NET团队

微软发布ML.NET 1.0的更多相关文章

  1. 微软发布.Net Core 3.0 RC1,最终版本定于9月23日

    2019.9.17 微软 宣布推出.NET Core 3.0 Release Candidate 1.就像Preview 9一样,主要专注于为 .NET Core 3.0 发布最终版本 .现在变得非常 ...

  2. 关于ML.NET v1.0 的发布说明

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

  3. 关于ML.NET v1.0 RC的发布说明

    ML.NET是面向.NET开发人员的开源和跨平台机器学习框架(Windows,Linux,macOS).使用ML.NET,开发人员可以利用他们现有的工具和技能组,通过为情感分析,推荐,图像分类等常见场 ...

  4. .NET Conf 2019 大会上发布.NET Core 3.0

    北京时间今天凌晨如期在.NET Conf 上发布.NET Core 3.0,Keynotes 由Scott Hunter 主演,主要围绕.NET Core 3.0的新特性和社区展开. 多功能性是.Ne ...

  5. 微软发布了开发社区采用.NET Standard的最新信息

    最近,微软发布了开发社区当前采用.NET Standard的最新信息..NET Standard是API的正式规范,现有.NET实现在不同平台的是通用的(从而允许跨平台开发).当前规范(版本2.0)在 ...

  6. 微软重制Windows 1.0系统:祖师爷出山了

    Windows官方推特在7月1日发布了一条很有趣的动态,“向大家介绍全新的Windows 1.0,带MS-DOS.时钟等”.配发的视频回顾了从Windows 1.0/3.1到Windows 10期间, ...

  7. 微软发布独立Android模拟器 为开发者提供测试

    微软发布了 Visual Studio 2015 正式版,除了免费的社交版之外,另外也有付费的专业版.这套工具除了提供 Windows 应用程序的整合环境之外,你也可以利用它来开发 Android 程 ...

  8. 微软发布屏蔽Win10升级的官方办法

    微软发布屏蔽Win10升级的官方办法 导读 微软似乎从来就没有像现在这么焦燥过,当然了,攸关生死,他要还是能"蛋"定得住,那才真叫怪了.你看,为了推广Windows 10,一向傲娇 ...

  9. 微软 microsoft calendar control 11.0 控件下载

    微软 microsoft calendar control  11.0 控件下载 https://files.cnblogs.com/files/mqingqing123/csccal2.rar

随机推荐

  1. 01 jQuery配置、jQuery语法结构、jQuery对象与DOM对象的互相转换

    配置jQuery环境 下载jQuery    官网:jquery.com 学习或开发建议选择未压缩版,便于学习,发布建议选择压缩版,便于用户极速体验(点击下载若出现的是代码页 面,Ctrl+A全选复制 ...

  2. Java标识符(Identifier)(关键字和保留字)

    Java标识符(Identifier) 1. 只能由英文字母(A~Z)或(a~z).下划线(_).美元符号($)和数字(0~9)组成,且开头不能为数字. 2. 区分大小写! 3. 无长度限制! _3_ ...

  3. 压缩打包介绍、gzip、bzip2、xz压缩工具

    第5周第1次课(4月16日) 课程内容: 6.1 压缩打包介绍6.2 gzip压缩工具6.3 bzip2压缩工具6.4 xz压缩工具 6.1 压缩打包介绍 为什么要给文件进行压缩呢?首先压缩和不压缩空 ...

  4. SpringBoot和SpringCloud的版本对应关系

    1.详细的SpringBoot和SpringCloud对应的关系: Spring官方对应关系 2.springCloud与各组件的版本对应关系 官方文档

  5. #华为云·寻找黑马程序员#微服务-你真的懂 Yaml 吗?

    在Java 的世界里,配置的事情都交给了 Properties,要追溯起来这个模块还是从古老的JDK1.0 就开始了的. "天哪,这可是20年前的东西了,我居然还在用 Properties. ...

  6. 关于Python的随机数模块,你必须要掌握!

    所谓七夕 前几天的文章这个七夕节,用Python为女友绘制一张爱心照片墙吧!收获了最近以来最高的浏览量,没枉费我熬到夜里3点赶出来的热点文章.有付出就总会有所回报,只是看这天来的早晚而已.七夕一个人看 ...

  7. Python开发GUI工具介绍,实战:将图片转化为素描画!

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  8. Java修炼——冒泡排序

    核心思想: 1)如有一个数列有 N(5)个元素,则至多需要 N-1(4)趟循环 才能保证数列有序 2) 每一趟循环都从数列的第一个元素开始比较,依次比较 相邻的两个元素,比较到数列的最后 3) 如果前 ...

  9. 洛谷 题解 P1736 【创意吃鱼法】

    题目大意 给出一个 \(n \times m \ (1 \leq n, \ m \leq 2500)\) 的 \(01\) 矩阵,让你在其中找到一个最大的子矩阵使得该子矩阵除了一条对角线上的数字均为 ...

  10. C# 利用反射更改父类公开对象

    需求 : 有一个保存数据库字段的基础类,现在要加个状态返回给前端,但是又不能改基础类: class BaseA { public string Name { get; set; } } class A ...