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分数甚至可能为负数。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。