原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/git
咱们很高兴地宣布今天发布ML.NET 1.0 。 ML.NET是一个免费的,跨平台的开源机器学习框架,旨在将机器学习(ML)的强大功能引入.NET应用程序。github
https://github.com/dotnet/machinelearning 算法
入门@ http://dot.net/mlapi
ML.NET容许您使用C#或F#训练,构建和发布自定义机器学习模型,用于情景分析,问题分类,预测,推荐等场景。您能够在咱们的ML.NET示例仓库中查看这些常见的场景和任务 。架构
ML.NET最初是在微软研究院开发的,而且演变成许多Microsoft产品使用的重要框架,例如Windows Defender,Microsoft Office(Powerpoint设计灵感,Excel图表推荐),Azure机器学习,PowerBI关键影响者等等!app
自从推出以来,许多组织都在使用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等新工具,这意味着如今能够只需点击右键就能够为您的应用程序添加机器学习模型!dom
ML.NET旨在提供终端工做流程,以便在机器学习(预处理,特征工程,建模,评估和操做)的各个步骤中将ML用于.NET应用程序。ML.NET 1.0提供如下关键组件:工具
现在,机器学习入门涉及陡峭的学习曲线。在构建自定义机器学习模型时,您必须肯定为您的场景选择哪一个机器学习任务(即分类或回归?),将您的数据转换为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添加到现有应用程序中。
Model Builder目前处于预览阶段,咱们很乐意为您试用并告诉咱们您的想法!
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 1.0,但团队已经在努力为ML.NET 1.0版发布如下功能。
特别呼吁这些使人惊叹的贡献者,他们与咱们一块儿开始使用ML.NET为.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-SB, timitoc, tincann, v-tsymbalistyi,
van-tienhoang, veikkoeeva和yamachu
若是您尚未,请试试ML.NET!
您的反馈对于咱们帮助塑造ML.NET并使.NET成为机器学习的绝佳平台相当重要。
谢谢,ML.NET团队