sklearn 中可以用到线性模型有: LinearRegression、Ridge、Lasso
1 Ridge
Ridge 是 添加了 L2 正则化的模型
在拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。
因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。
可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』
把系数绘图出来
model = Ridge().fit(train_X, train_y_ln)
print('intercept:'+ str(model.intercept_))
sns.barplot(abs(model.coef_), continuous_feature_names)
2 Lasso
Lasso 是添加了 L1 正则化的模型
L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。
参考:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.24.1cd8593aLNK3uJ&postId=95460