线性回归的主要问题是对异常值敏感。在真实世界的数据收集过程中,经常会遇到错误的度量结果。而线性回归使用的普通最小二乘法,其目标的使平方误差最小化。这时,由于异常值误差的绝对值很大,因此会引起问题,从而破坏整个模型。
先看下面的图。
从上图可以看到,有两个数据点是异常值,但是这个模型需要拟合所有的数据点,因此导致整个模型都错了。如果去除两个异常值,可以得到下图实线的拟合曲线。
普通最小二乘法在建模时会考虑每个数据点的影响,因此,最终模型会像上图实线那样。很显然,这个模型不是最优的。为了避免这个问题,我们引入正则化的系数作为阈值来消除异常值的影响。这个方法被称为岭回归。
接下来,我们使用python建立岭回归器。
我们先准备好一份数据文件data_,相关数据文件可到。
(1)加载导入数据。
训练数据
x_train=(x[:num_training])
y_train=(y[:num_training])
计算回归准确性
计算均方误差
print("Meansquarederror=",round(_squared_error(y_test,y_test_pred_ridge),2))
计算解释方差分
print("Explainedvarianceerror=",round(_variance_score(y_test,y_test_pred_ridge),2))
#计算R方得分
print("R2scoreerror=",round(_score(y_test,y_test_pred_ridge),2))
输出结果如下:
('Meanabsoluteerror=',3.95)
('Meansquarederror=',23.15)
('Medianabsoluteerror=',3.69)
('Explainedvarianceerror=',0.84)
('R2scoreerror=',0.83)
版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。