ML.NET 专门为.NET开发者提供了一套跨平台的开源的机器学习框架。
ML.NET支持.NET开发者不需要过度专业的机器学习开发经验,就能轻松地训练自己的模型,并且嵌入到自己的应用中。一切尽在.NET之中。ML.NET早期是由Microsoft Research开发,近十年来逐步集成到一个大体系中被众多Microsoft产品使用,如大家熟知的Windows、Bing、PowerPoint、Excel之类。
ML.NET的第一个预览版提供了分类器(如文本分类、情感分析)和回归(如价格预测)等实用的机器学习模型。第一版发布后在既有功能之上又新增了关于训练模型的.NET API,使用这些模型进行预测,就像框架中算法、转换、数据结构一类核心组件一样的开发体验。
接下来用个示例,一起进入快速上手的实践中来。
-
安装.NET SDK
为了创建一个.NET应用,首先下载 .NET SDK。
-
创建应用
使用如下命令初始化项目,创建一个控制台应用程序,目标为myApp:
dotnet new console -o myApp cd myApp
-
安装ML.NET包
使用如下命令安装Microsoft.ML包:
dotnet add package Microsoft.ML
-
下载数据集
假设我们使用机器学习来预测鸢尾花的类型,比如有setosa、versicolor、virginica三种,基于特征有四种:花瓣长度、花瓣宽度, 萼片长度、萼片宽度。
去UCI Machine Learning Repository: Iris Data Set下载一个现成的数据集,复制粘贴其中的数据到任何一个文本编辑器中,然后保存命名为iris-data.txt到myApp目录中。
粘贴完文本内容应该是如下格式,每一行表示不同鸢尾花的样本,数值的部分从左到右依次是萼片长度、萼片宽度、花瓣长度、花瓣宽度,最后是鸢尾花的类型。
如果是使用了Visual Studio,将iris-data.txt添加至项目中,需要进行如下配置确保运行时数据集文件在输出的目录中。
-
编写代码
打开Program.cs文件,输入以下代码:
-
运行应用
使用如下命令行运行程序:
dotnet run
在最后一行将输出对花的预测结果,你可以修改传给Predict函数各种鸢尾花的特征值看看有什么不同的结果。
恭喜,你已经跨入使用ML.NET进行机器学习的门槛了!