上QQ阅读APP看书,第一时间看更新
4.4.1 套索回归的原理
和岭回归一样,套索回归也会将系数限制在非常接近0的范围内,但它进行限制的方式稍微有一点不同,我们称之为L1正则化。与L2正则化不同的是,L1正则化会导致在使用套索回归的时候,有一部分特征的系数会正好等于0。也就是说,有一些特征会彻底被模型忽略掉,这也可以看成是模型对于特征进行自动选择的一种方式。把一部分系数变成0有助于让模型更容易理解,而且可以突出体现模型中最重要的那些特征。
让我们再用糖尿病数据集来验证一下套索回归,在jupyter notebook中输入代码如下:
#导入套索回归 from sklearn.linear_model import Lasso #使用套索回归拟合数据 lasso = Lasso().fit(X_train, y_train) print('\n\n\n代码运行结果:') print('==========\n') print("套索回归在训练数据集的得分:{:.2f}".format(lasso.score(X_train, y_train))) print("套索回归在测试数据集的得分:{:.2f}".format(lasso.score(X_test, y_test))) print("套索回归使用的特征数:{}".format(np.sum(lasso.coef_ != 0)))
代码运行的结果如图4-16所示。
图4-16 套索回归模型得分
【结果分析】这里我们看到,套索回归在训练数据集和测试数据集的得分都相当糟糕。这意味着我们的模型发生了欠拟合的问题,而且你会发现,在10个特征里面,套索回归只用了3个。与岭回归类似,套索回归也有一个正则化参数alpha,用来控制特征变量系数被约束到0的强度。