欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET开发人员关于ML.NET的入门学习

程序员文章站 2023-11-12 23:43:04
ml.net一直在微软的研究部门的工作。这些创新已经用于他们自己的产品,如windows defender,microsoft office(powerpoint设计理念,...

ml.net一直在微软的研究部门的工作。这些创新已经用于他们自己的产品,如windows defender,microsoft office(powerpoint设计理念,excel图表推荐),azure机器学习,powerbi。 ml.net旨在提供终端工作流程,以便在机器学习(预处理,特征工程,建模,评估和操作)的各个步骤中将ml用于.net应用程序。

ml.net 1.0提供以下关键组件:数据表示机器学习任务(分类,回归,异常检测等)数据特征工程

机器学习模型应该让分析师的生活更轻松,现在甚至可以构建这些模型,因为新框架的设计考虑了automl。除了通常的机器学习任务外,ml.net还支持automl。

对于机器学习初学者,microsoft开发人员建议从visual studio中的ml.net模型构建器和任何平台上的ml.net cli开始。对于可以随时构建模型的场景,automl api也非常方便。

使用ml.net模型构建器,只需右键单击即可向应用程序添加机器学习。

.NET开发人员关于ML.NET的入门学习

在命令行使用ml.net

还引入了另一个工具ml.net cli(命令行工具),它允许使用automl和ml.net生成ml.net模型。ml.net cli快速遍历特定ml任务的数据集(目前支持回归和分类)并生成最佳模型。

cli除了生成最佳模型外,还允许用户为最佳性能模型生成模型训练和 消费模型代码。

ml.net cli是跨平台的,是.net cli 的全局工具。visual studio扩展ml.net model builder 还使用ml.net cli提供模型构建器功能。

安装ml.net cli:

dotnet tool install -g mlnet 

这是使用回归预测出租车票价的代码

加载数据集

idataview trainingdataview = mlcontext.data.loadfromtextfile(traindatapath, hasheader: true); 
idataview testdataview = mlcontext.data.loadfromtextfile(testdatapath, hasheader: true); 

运行automl二进制分类

experimentresult experimentresult = mlcontext.auto().createregressionexperiment(experimenttime).execute(trainingdataview, labelcolumnname, progresshandler: new regressionexperimentprogresshandler());

模型评估

itransformer model = experimentresult.bestrun.model; 

并使用测试数据集评估其质量(taxi-fare-test.csv)。

regression.evaluate() 计算已知票价与模型预测值之间的差异,以生成各种指标。

var predictions = trainedmodel.transform(testdataview); 
var metrics = mlcontext.regression.evaluate(predictions,scorecolumnname:“score”);

创建预测引擎

var predengine = mlcontext.model.createpredictionengine<taxitrip, taxitripfareprediction>(model);

计算分数

var predictedresult = predengine.predict(taxitripsample); 

上面是使用visual studio内部的模型构建器以及cli命令测试automl,还有一个api可以在.net应用程序中使用它,使用非常简单,添加[ microsoft.ml.automl ] nuget包到项目中就可以使用api 进行工作

.NET开发人员关于ML.NET的入门学习

ml.net示例仓库中有一整套。可以重用了common文件夹中的一些类来通过api使用automl 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。