概述
评价线性回归的指标有四种,均方误差(Mean Squared Error)、均方根误差(Root Mean Squared Error)、平均绝对值误差(Mean Absolute Error)以及R Squared方法。 sklearn中使用的,也是大家推荐的方法是R Squared方法。
用
1、均方误差 MSE
MSE的值越小,说明预测模型描述实验数据具有更好的精确度
2、均方根误差 RMSE
3、平均绝对值误差 MAE
这个指标是对绝对误差损失的预期值.
平均绝对百分比误差(MAPE, Mean Absolute Percentage Error)
这个指标是对相对误差损失的预期值.所谓相对误差,就是绝对误差和真值的百分比.
4、 R方 [R Squared(r2 score)]
回归平方和:SSR(Sum of Squared Regression)
即预测值与平均值的误差,反映自变量与因变量之间的相关程度的偏差平方和,是指模型解释掉的变异.
残差平方和:SSE(Sum of Squared Error)
即预测值与真实值的误差,反映模型拟合程度
总离差平方和:SST(Sum of Squared Total)
即平均值与真实值的误差,反映与数学期望的偏离程度
R2_score计算公式
R Squared又叫决定系数(coefficient of determination)也叫拟合优度,反映因变量的全部变异能通过回归关系被自变量解释的比例.越接近于1,说明模型拟合得越好.
进一步化简
分子就变成了常用的评价指标均方误差MSE,分母就变成了方差。
对于 R2_score可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
- R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。
- R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。
- R2_score不是r的平方,也可能为负数(分子>分母),模型等于盲猜,还不如直接计算目标变量的平均值。此时数据不存在任何线性相关关系。
四种代码实现:
def mean_squared_error(y_true, y_predict):
"""计算y_true和y_predict之间的MSE"""
assert len(y_true) == len(y_predict),
"the size of y_true must be equal to the size of y_predict"
return np.sum((y_true - y_predict)**2) / len(y_true)
def root_mean_squared_error(y_true, y_predict):
"""计算y_true和y_predict之间的RMSE"""
return sqrt(mean_squared_error(y_true, y_predict))
def mean_absolute_error(y_true, y_predict):
"""计算y_true和y_predict之间的RMSE"""
assert len(y_true) == len(y_predict),
"the size of y_true must be equal to the size of y_predict"
return np.sum(np.absolute(y_true - y_predict)) / len(y_true)
def r2_score(y_true, y_predict):
"""计算y_true和y_predict之间的R Square"""
return 1 - mean_squared_error(y_true, y_predict)/np.var(y_true)
sklearn库实现:
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test, y_pred)
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test, y_pred)
from sklearn.metrics import r2_score
r2_score(y_test, y_pred)
# RMSE
np.sqrt(metrics.mean_squared_error(y_true, y_pred))
5、修正决定系数(调整后R平方)
如果两个模型的样本数量和决定系数都相同,变量个数越少说明拟合效果越好。
修正决定系数相当于给变量的个数加惩罚项。考虑到SSE的自由度为n-p-1,SST的自由度为n-1,修正决定系数设置为
n是样本数量,p是变量个数
调整后R平方的作用就是判断你的模型里该不该加入你想加进来的自变量。如果调整后R平方和R方差异较大,证明你的模型里加入了很多没有用的变量。调整后R平方没有实际含义!
R平方表示模型的解释程度,核心还是因为SSR代表着回归模型的解释变异程度,之所以除以SST只是为了进行标准化,使得R平方有一个固定的值域,便于比较。
最后
以上就是朴实日记本为你收集整理的线性回归评估的指标_线性回归算法的评估指标的全部内容,希望文章能够帮你解决线性回归评估的指标_线性回归算法的评估指标所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复