与L1范数正则化略有不同的是,L1范数正则化则在原优化目标的基础上,增加了参数向量的L2范数的惩罚项,为了使新优化目标最小化,这种正则法的结果会让参数向量中的大部分元素都变得很小,压制了参数之间的差异性。而这种压制参数之间差异性的L2正则化模型,通常被称为Ridge。
Ridge模型在4次多项式特征上的拟合表现
#输出4次多项式回归模型的参数列表
print(regressor_poly4.coef_)
[[ 0.00000000e+00 -2.51739583e+01 3.68906250e+00 -2.12760417e-01
4.29687500e-03]]
#输出上述这些参数的平方和,验证参数之间的巨大差异。
print(np.sum(regressor_poly4.coef_**2))
647.382645737
from sklearn.linear_model import Ridge
ridge_poly4=Ridge()
ridge_poly4.fit(X_train_poly4,y_train)
#输出Ridge模型在测试样本上的回归性能
print(ridge_poly4.score(X_test_poly4,y_test))
0.837420175937
#输出Ridge模型的参数列表,观察参数差异
print(ridge_poly4.coef_)
[[ 0. -0.00492536 0.12439632 -0.00046471 -0.00021205]]
#计算Ridge模型拟合后参数的平方和
print(np.sum(ridge_poly4.coef_**2))
0.0154989652036
通过对输出代码的观察,可以验证Ridge模型的一切特点:
(1)相比于普通4次多项式回归模型在测试机上的表现,默认配置的Ridge模型性能提高了近3%;
(2)与普通4次多项式回归模型不同的是,Ridge模型拟合后的参数之间差异非常小。