确定哪个模型结果更好

数据挖掘 机器学习 回归 rmse r平方
2022-03-02 18:16:06

我正在尝试确定哪个模型结果更好。这两个结果都试图实现相同的目标,唯一的区别是所使用的确切数据。我使用random forest,xgboostelastic net进行回归。这是一个低rmse但不太好的结果之一r2

model   n_rows_test n_rows_train    r2                rmse
rf      128144      384429        0.258415240861579  8.44255341472637
xgb     128144      384429        0.103772500839367  9.28116624462333
e-net   128144      384429        0.062460300392487  9.49266713837073

相对于标准偏差,另一个模型运行具有更高r2但不是那么好。rmse

n_rows_train  n_rows_test     metric_col        model   rmse           r2
37500         12500        3 year appreciation  e-net   62.3613393228877    0.705221446139843
37500         12500        3 year appreciation  rf      52.0034451171835    0.795011617995982
37500         12500        3 year appreciation  sgd     1952637950501.17    -2.89007070463773E+020
37500         12500        3 year appreciation  xgb     50.3263561914699    0.808019998691306

哪一个更好?

3个回答

解决该问题的另一种方法是采用所有经过训练的模型,并在相同的保留数据集上比较它们的每个性能。这是评估机器学习模型的最常用方法。

选择要使用的评估指标取决于项目的目标。大多数机器学习项目都关心预测能力。

R² 不是模型预测能力的有用指标。

RMSE 可以作为预测能力的有用指标。但是,由于误差是平方的,因此对数据的属性很敏感。您提到您正在使用不同的数据。这些数据差异可能会影响比较不同来源的 RMSE。使用 RMSE 比较同一数据集上的不同模型会更好。

在继续之前,一个有趣的注释:

您的问题的值具有很强的负相关性。看看这张图的前三个值:RMSER2

错误

相关系数仅-0.9999525考虑前三个模型。现在,如果包括其他人,那么它也保持不变。

现在来回答你的问题,告诉我们模型可以解释的方差百分比。然而,可以告诉我们我们的预测与实际值相比有多接近。通常对模型提供更好的估计,但当预测中存在异常值时,它会受到严重影响。R2RMSERMSE

因此,出于这个原因,我建议在做出最终决定之前采取以下步骤:

计算(中值绝对偏差)和(平均绝对百分比误差),看看它们是怎么来的。也会受到影响,但我们可以更好地了解预测,因为它采用相对百分比。MADMAPEMAPE

简而言之:在选择最佳模型之前,我会查看更多统计误差估计器。

另外,看看我合着的这篇论文:

可持续干式车削操作中的响应预测:比较分析

在这里,我们使用了 5 种不同的统计误差估计器来选择最佳模型。

具有较高 R2 的模型结果,其中 R2 分数向 1 移动,模型性能提高。您必须注意,R2 分数是一个衡量模型性能的指标,而不是绝对意义上的模型性能损失。

相比之下,MAE、RMSE 和 MSE 取决于上下文,而 R2 分数与上下文无关。

由于这些原因,第二个模型的结果更好。