ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ML .NET 二手车价格预测之评估(三)

2022-03-07 20:00:06  阅读:204  来源: 互联网

标签:mlContext 二手车 ML vm testMetrics Evaluate NET


在模型生成后,可以通过Evaluate方法进行评估

//注意,这里使用txt或者tsv格式的文件
string testCsvPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TrainData", "test-data2.txt");
string modelDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Model");
string modelPath = Path.Combine(modelDirectory, "UsedCarsPricePredictionMLModel.zip");

MLContext mlContext = new MLContext(seed: 0);

ITransformer loadedModel = mlContext.Model.Load(modelPath, out _);

var testDataView = mlContext.Data.LoadFromTextFile<ModelInput>(testCsvPath, hasHeader: true);
//https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.ml.data.regressionmetrics?view=ml-dotnet&WT.mc_id=DT-MVP-5003010
var testMetrics = mlContext.Regression.Evaluate(loadedModel.Transform(testDataView), labelColumnName: "Price");

//获取模型的绝对损失
vm.MeanAbsoluteError = testMetrics.MeanAbsoluteError;
//获取模型的平方损失
vm.MeanSquaredError = testMetrics.MeanSquaredError;
//获取均方根损失(或 RMS),它是 L2 损失 MeanSquaredError 的平方根
vm.RootMeanSquaredError = testMetrics.RootMeanSquaredError;
//获取用户定义的丢失函数的结果
vm.LossFunction = testMetrics.LossFunction;
//获取模型的 R 平方值,也称为决定系数。 R-Squared 接近 1 表示模型拟合度更好。
vm.RSquared = testMetrics.RSquared;

评估结果如图

由于训练模型的时候使用的是MlContext.Regression.Trainers.LightGbm,所以评估也应该使用对应的方法MlContext.Regression.Evaluate
ML .NET提供了很多训练算法,可以在这里查看,包括:

二元分类 BinaryClassificationCatalog
多类分类 MulticlassClassificationCatalog
异常情况检测 AnomalyDetectionCatalog
聚类分析 ClusteringCatalog
预测 ForecastingCatalog
排名 RankingCatalog
回归测试 RegressionCatalog
建议 RecommendationCatalog
TimeSeries TimeSeriesCatalog

示例代码

示例代码

参考资料

RegressionCatalog.Evaluate(IDataView, String, String) 方法
RegressionMetrics 类
10分钟快速入门
什么是 ML.NET 以及它如何工作?
官方示例machinelearning-samples
教程:将回归与 ML.NET 配合使用以预测价格

标签:mlContext,二手车,ML,vm,testMetrics,Evaluate,NET
来源: https://www.cnblogs.com/Lulus/p/15977094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有