目录
正文
Sklearn.metrics下面的r2_score函数用于计算R²(确定系数:coefficient of determination)。它用来度量未来的样本是否可能通过模型被很好地预测。
分值为 1 表示最好,但我们在使用过程中,经常发现它变成了负数,多次手动调参只能改变负值的大小,却始终不能让该值变成正数。
R 2 R^2 R2 的定义如下图,从公式来看,即使我们不使用任何模型,仅仅用目标集标签的平均值,就能让 R2_score 为 0,如果值为负数,则表示我们预测的结果还不如测试集中的 y_label 的平均值准确。下面我们最简单的模型去测试一下 R2_score 到底跟什么有关系。
评论区
- 用随机森林回归树预测波浪类型的数据,不行, R 2 R^2 R2 是负的,还不如用多项式回归预测,还能到0.6,感觉是数据分布不适合这个模型,怎么调参都不行,换模型得了
- 换神经网络模型,完美解决这个问题, R 2 R^2 R2 能达到 0.9 以上
- 换个模型吧,数据不适合
参考链接
[1] Sklearn模型中预测值的R2_score为负数的问题探讨 2019.1;