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

  • 其他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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章