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

2022/3/7 23:18:51

本文主要是介绍ML .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 配合使用以预测价格



这篇关于ML .NET 二手车价格预测之评估(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程