原文地址: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. 【新手向】如何学习Java集合

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 如果认识我的同学可能就知道,我已经写过很多系列级 ...

  2. 极化码之tal-vardy算法(1)

    继前两节我们分别探讨了极化码的编码,以及深入到高斯信道探讨高斯近似法之后,我们来关注一个非常重要的极化码构造算法.这个算法并没有一个明确的名词,因此我们以两位发明者的名字将其命名为“Tal-Vardy ...

  3. VLAN实验5(在ensp上利用三层交换机实现VLAN间路由)

    原理概述: VLAN将一个物理的LAN在逻辑上划分成多个广播域.VLAN内的主机间可以直接通信,而VLAN间不能直接互通. 在现实网络中,经常会遇到需耍跨VLAN相互访问的情况,工程师通常会选择一些方 ...

  4. js中跳转的方法

    javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面location.href=& ...

  5. 第三章 学习Shader所需的数学基础(4)

    法线变换 法线(normal),也被称为法矢量(normal vector).在以前我们已经讲过如何使用变换矩阵来变换一个顶点或方向矢量,但法线是需要我们特殊处理的一种方向矢量.在游戏中,模型的顶点往 ...

  6. MySQL的存储(二、创建表并插入)

    创建表 首先创建一个 spiders的数据库 cursor.execute("create database spiders default character set utf8" ...

  7. 利用python实现dll依赖关系导出

    #说明:遍历rootdir目录下所有dll,导出每个dll依赖的dll信息到dstdir目录下 # 配合NotePad++打开所有txt,搜索,可快速定位到某dll被依赖的所有dll文件 import ...

  8. 洛谷 P2388 阶乘之乘 题解

    本蒟蒻又来发题解了QwQ; 看到这个题目,本蒟蒻第一眼就想写打个暴力: 嗯,坏习惯: 但是,动动脑子想一想就知道,普通的的暴力是过不了的: 但是,身为蒟蒻的我,也想不出什么高级的数学方法来优化: 好, ...

  9. lodash.memoize

    目录 _.memoize(func, [resolver]) 举例1: 获取J(1000000)的值 举例2: 斐波那契数列F(1000)的值 _.memoize(func, [resolver]) ...

  10. ARTS-S Why do India and Pakistan keep fighting over Kashmir?

    原文 On Wednesday, Pakistani and Indian fighter jets engaged in a skirmish over Indian-controlled terr ...