机器学习读书笔记

3.1.2.2L1范数正则化

2017-12-02  本文已影响24人  idatadesign

正则化的目的在于提高模型在未知测试数据上的泛化力,避免参数过拟合。由上节的例子可以看出,2次多项式回归是相对较好的模型假设。之所以出现如4次多项式那样的过拟合情景,是由于4次方项对应的系数过大,或者不为0所导致。
因此。正则化的常见方法都是在原模型优化目标的基础上,增加对参数的惩罚项
也就是说,在原优化目标上的基础上,增加参数向量L1范数。如此一来,在新目标优化的过程中,也同时考虑L1惩罚项的影响。为了使目标最小化,这种正则化方法的结果会让参数向量中的许多元素趋向于0,使得大部分特征失去对优化目标的贡献。而这种让有效特征变得稀疏的L1正则化模型,通常被称为Lasso

Lasso模型在4次多项式特征上的拟合表现
from sklearn.linear_model import Lasso
#从使用默认配置初始化Lasso
lasso_poly4=Lasso()
#从使用Lasso对4次多项式特征进行拟合
lasso_poly4.fit(X_train_poly4,y_train)

#对Lasso模型在测试样本上的回归性能进行评估
print(lasso_poly4.score(X_test_poly4,y_test))

0.83889268736

#输出Lasso模型的参数列表
print(lasso_poly4.coef_)

[ 0.00000000e+00 0.00000000e+00 1.17900534e-01 5.42646770e-05
-2.23027128e-04]

#回顾普通4次多项式回归模型过拟合之后的性能
print(regressor_poly4.score(X_test_poly4,y_test))

0.809588079578

#回顾普通次多项式回归模型的参数列表
print(regressor_poly4.coef_)

[[ 0.00000000e+00 -2.51739583e+01 3.68906250e+00 -2.12760417e-01
4.29687500e-03]]

通过对输出代码的观察,验证了我们所介绍的Lasso模型的一切特点。
(1)相比于普通4次多项式回归模型在测试机上的表现,默认配置的Lasso模型性能提高了大约3%;
(2)相较之下,Lasso模型拟合后的参数列表中,4次与3次特征的参数均为0.0,使得特征更加稀疏。

上一篇下一篇

猜你喜欢

热点阅读