定义
R2决定系数是对线性模型评估的一种评价指标,其值最大为1,最小为0,当值越接近于1,则说明模型越好;值越接近于0,则模型越差。
计算过程
使用 表示真实的观测值,使用表示真实观测值的平均值,使用表示预测值,于是就产生下以下的指标:
-
回归平方和(SSR)
估计值与平均值的误差,反映自变量与因变量之间的相关程度的偏差平方和 -
残差平方和(SSE)
即估计值与真实值的误差,反映模型拟合程度 -
总离差平方和(SST)
即平均值和真实值之间的误差,反映与数学期望的偏离程度 -
R2 score ,即决定系数
反映因变量的全部变异能通过回归关系被变量解释的比例,计算公式:
即 进一步化简为:
如此一来,分子就变成了常用的评价指标,均方误差RMSE,分母则变成了方差,对于
可以通俗的理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差
若:
R2 score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好
R2 score = 0,此时分子等于分母,样本的每项预测值都等于均值
最后,是sklearn中的有关于模型评估的几个API:
import sklearn.metrics as sm # 模型评估模块
# 拿到一组测试集模型进行模型评估
test_x = 测试变量数据集
test_y = 测试结果数据集
# 训练的模型,获取模型预测值
pred_test_y=model.predict(test_x)
# 平均绝对值误差 mae
print(sm.mean_absolute_error(test_y, pred_test_y))
# 平均平方误差:均方误差 mse
print(sm.mean_squared_error(test_y, pred_test_y))
# 中位数绝对偏差
print(sm.median_absolute_error(test_y, pred_test_y))
# r2_score
print(sm.r2_score(test_y,pred_test_y))
如有错误请联系作者改正,谢谢!
文章出处登录后可见!
已经登录?立即刷新