【问题标题】:Evaluation of an Regression Model with r²使用 r² 评估回归模型
【发布时间】:2016-10-03 13:40:40
【问题描述】:

使用词袋模型,我计算每个文档(来自董事会的帖子)的单词出现次数,并为每个帖子创建向量。示例:

X = [[0,0,0,1,0,3,0,0]
     [0,0,1,0,0,0,1,0]
     [1,0,1,0,2,0,0,0]]

y = [22,35,87]

y 是 X 中每个向量的标签/目标(y = 作者的年龄)。

训练回归模型(线性回归,逻辑回归,...)后,我使用 MAE(平均绝对误差) 它将预测年龄与真实年龄进行比较,我得到了令人满意的结果。

但是我不太明白如何使用 r²:

输入

我必须使用预测标签和真实标签是否正确 (以我为例,年龄在 14-65 岁之间)

r2_score(y_true, y_pred) 

这不就是 MAE 的用途吗?

低 r²

在这个例子中,预测很好:

y_predicted = [49, 30, 31, 46, 28, 30]
y_true =      [46, 28, 30, 49, 30, 57]

除一项预测外,所有预测都接近真实年龄。 MAE 是 6.3 年,但 scikit-learns r²scorer 显示 -0.008

为什么这么糟糕?就因为一个错误的预测?

皮尔森 r

此外,还有皮尔逊相关“r”: 皮尔逊 r 平方是否等于 r²?

【问题讨论】:

    标签: python machine-learning nlp scikit-learn regression


    【解决方案1】:

    决定系数R²描述了回归模型解释的因变量的方差比例。 MAE 只是给出所有测试数据的平均误差。因此,它们是衡量模型性能的两种不同方法,因为每种方法都有自己的缺陷。

    R 平方并不表示回归模型是否足够。您可以为良好的模型设置较低的 R 平方值,或为不适合数据的模型设置较高的 R 平方值。

    另一件可疑的事情是,您的值低于 0,因为通常输出在 0 和 1 之间,具体取决于其实现。

    也许您可以自己实现该功能,这是一个非常简单的功能(例如wiki

    是的,你应该使用预测的标签和真实的测试数据。

    【讨论】:

      猜你喜欢
      • 2014-06-13
      • 1970-01-01
      • 2017-12-15
      • 2020-01-28
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      相关资源
      最近更新 更多