计算预测连续值的准确度分数

Posted

技术标签:

【中文标题】计算预测连续值的准确度分数【英文标题】:Calculating accuracy scores of predicted continuous values 【发布时间】:2018-08-12 16:13:37 【问题描述】:
from sklearn.metrics import accuracy_score
accuracy_score(y_true, y_pred)

我相信这段代码将返回我们预测的准确性。但是,我正在比较连续值的预测值和实际值,我相信它们中的大多数不会完全相同。

我是否应该拟合测试集值并绘制预测值以获得 R 平方?

谁能告诉我在连续变量的情况下如何衡量预测的准确性?

【问题讨论】:

没有为回归问题(即连续输出)定义准确度,比如你的;看看this thread 中的讨论(它是针对 Keras,但论点是一样的)。 【参考方案1】:

在机器学习中,精度是针对离散值(类)定义的。它被定义为正确预测与总预测的比例。

因此,真实值为 320 的值 319 的预测仍然是不正确的预测。

因此不建议计算连续值的准确性。对于此类值,您需要计算预测值与真实值的接近程度。这种预测连续值的任务称为回归。并且一般使用R平方值来衡量模型的性能。

您可以将r2_score(y_true, y_pred) 用于您的场景。

回归任务(连续变量预测)有多种指标,例如:-

均方误差, 平均绝对误差, 方差分数等

您可以在here 获取有关这些指标的 sklearn 实施的更多信息。

【讨论】:

我会省略“大部分” @desertnaut 完成。谢谢。我主要是因为一些工具没有明确地知道这种差异。我也在考虑标签被编码然后用户可以计算准确性的场景,尽管这不适用于这种情况。

以上是关于计算预测连续值的准确度分数的主要内容,如果未能解决你的问题,请参考以下文章

python 观察具有不同k值的训练和测试集的准确度分数如何不同

29、评估多分类问题--混淆矩阵和F分数

使用 Keras 评估模型时的测试分数与测试准确度

准确率召回率F1值的思考

模型分数分布

在 Python 中使用逻辑回归的预测向量的准确度得分