今天,我们很高兴宣布发布ML.NET 1.0。ML.NET是一个免费的、跨平台的开源机器学习框架,旨在将机器学习(ML)的强大功能引入.NET应用程序。
ML.NET GitHub:
https://github.com/dotnet/machinelearning
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添加到现有应用程序中。
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很简单,你可以通过几个简单的步骤来完成,如下所示。 下面的示例显示了如何使用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/