sklearn.linear_model所有的模型如下:
all = [‘ARDRegression’,
‘BayesianRidge’,
‘ElasticNet’,
‘ElasticNetCV’,
‘Hinge’,
‘Huber’,
‘HuberRegressor’,
‘Lars’,
‘LarsCV’,
‘Lasso’,
‘LassoCV’,
‘LassoLars’,
‘LassoLarsCV’,
‘LassoLarsIC’,
‘LinearRegression’,
‘Log’,
‘LogisticRegression’,
‘LogisticRegressionCV’,
‘ModifiedHuber’,
‘MultiTaskElasticNet’,
‘MultiTaskElasticNetCV’,
‘MultiTaskLasso’,
‘MultiTaskLassoCV’,
‘OrthogonalMatchingPursuit’,
‘OrthogonalMatchingPursuitCV’,
‘PassiveAggressiveClassifier’,
‘PassiveAggressiveRegressor’,
‘Perceptron’,
‘RandomizedLasso’,
‘RandomizedLogisticRegression’,
‘Ridge’,
‘RidgeCV’,
‘RidgeClassifier’,
‘RidgeClassifierCV’,
‘SGDClassifier’,
‘SGDRegressor’,
‘SquaredLoss’,
‘TheilSenRegressor’,
‘enet_path’,
‘lars_path’,
‘lasso_path’,
‘lasso_stability_path’,
‘logistic_regression_path’,
‘orthogonal_mp’,
‘orthogonal_mp_gram’,
‘ridge_regression’,
‘RANSACRegressor’]
以下从回归角度,进行分类
总体视角
https://www.processon.com/view/link/5cd2a531e4b0bab90977975d
系列分析
原生系列
此系列没有加入正则化项,即木有结构风险项,直接求解经验风险最小化
-
LinearRegression(线性回归)
损失函数:
优化方法:最小二乘法 -
LogisticRegressionCV
验证方式:交叉验证 -
SGDRegressor 采用梯度下降法的方式求解,可配置正则项,所以既是经验风险最小化,也具备结构风险最小化
Ridge系列
加入正则化,对参数进行解空间约束,求解结构风险最小化,然而输入特征的维度很高,而且是稀疏线性关系的情况,不适合
- Ridge:损失函数
- RidgeCV :相对Ridge加入了交叉验证的流程,来帮忙我们选择一个合适的,一般初始情况,会输入一系列值,然后通过交叉验证,选出一个比较合适的。
Lasso系列
总概:加入正则化,适用于高维稀疏情况
损失函数 :
| Lasso | LassoCV | LassoLars | LassoLarsCV | LassoLarsIC | |
|---|---|---|---|---|---|
| 优化方式 | 坐标轴下降法 | 坐标轴下降法 | 最小角回归法 | 最小角回归法 | 最小角回归法 |
| 验证方式 | 普通验证 | 交叉验证 | 普通验证 | 交叉验证 | 基于AIC和BIC |
| 适用场景 | 学习,需要自己调 | 通过MAE选择比较优的 | 学习,手动调参 | 探索更多相关值,样本数远小于样本特征数 | 数据是来自一个模型确定的大样本,并且样本数量够大 |
一般首选LassoCV,再选LassoLarsCV
Elastic系列
总概:对LASSO和Ridge的折中
损失函数:
ElasticNet和ElasticNetCV两者的验证方式不同,后者有交叉验证,不需要手动调参。
非0个数限制
总概:在原生系列的基础上加入参数非0最大值约束
损失函数: 其中非0参数的个数有个最大值限制nnon−zero−coefs
OrthogonalMatchingPursuit和OrthogonalMatchingPursuitCV两者的区别也是验证方式,后者是交叉验证,不需要自己选择限制参数nnon−zero−coefs
Bayes系列
记录一篇博客,写得很赞
https://blog.csdn.net/daunxx/article/details/51725086
- BayesianRidge:贝叶斯回归模型假设先验概率,似然函数和后验概率都是正态分布。回归系数的先验分布规律为球形正态分布
- ARDRegression:回归系数采用与坐标轴平行的椭圆形高斯分布假设
- 应用场景:如果我们的数据有很多缺失或者矛盾的病态数据,可以考虑BayesianRidge类,如果发现拟合不好,可以换ARDRegression试一试。因为ARDRegression对回归系数先验分布的假设没有BayesianRidge严格,某些时候会比BayesianRidge产生更好的后验结果。