📜  Python – 确定系数-R2 分数

📅  最后修改于: 2022-05-13 01:54:58.902000             🧑  作者: Mango

Python – 确定系数-R2 分数

确定系数也称为 R 2分数,用于评估线性回归模型的性能。它是从输入自变量可预测的输出相关属性的变化量。它用于检查模型如何再现良好观察的结果,具体取决于模型描述的结果的总偏差的比率。

数学公式:

R2= 1- SSres / SStot

在哪里,
SS res是残差的平方和。
SS tot是误差的总和。

R 2分数解读:
假设 R 2 = 0.68
可以看出,依赖输出属性的 68% 的可变性可以由模型解释,而其余 32% 的可变性仍未得到解释。
R 2表示位于回归方程创建的直线内的数据点的比例。较高的 R 2值是可取的,因为它表示更好的结果。

例子
案例 1 模型给出了准确的结果

R2 = 1- 0/200 = 1

案例 2 模型总是给出相同的结果

R 2 = 1- 200/200 = 0

案例 3 模型给出了模棱两可的结果

R2 = 1- 600/200 = -2

我们可以在Python中从 sklearn.metrics 中导入 r2_score 来计算 R 2分数。

Python实现:
代码 1:从 sklearn.metrics 导入 r2_score

from sklearn.metrics import r2_score

代码 2:计算上述所有情况的 R 2分数。

### Assume y is the actual value and f is the predicted values
y =[10, 20, 30]
f =[10, 20, 30]
r2 = r2_score(y, f)
print('r2 score for perfect model is', r2)

输出:

r2 score for perfect model is 1.0
### Assume y is the actual value and f is the predicted values
y =[10, 20, 30]
f =[20, 20, 20]
r2 = r2_score(y, f)
print('r2 score for a model which predicts mean value always is', r2)
  

输出:

r2 score for a model which predicts mean value always is 0.0

代码 3:

### Assume y is the actual value and f is the predicted values
y = [10, 20, 30]
f = [30, 10, 20]
r2 = r2_score(y, f)
print('r2 score for a worse model is', r2)

输出:

r2 score for a worse model is -2.0

结论:

  • 当预测值与实际值相同时,最佳可能得分为 1。
  • 基线模型的 R 2得分为 0。
  • 在最坏的情况下, R 2分数甚至可能为负数。