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
sklearn之线性模型

系列分析

原生系列

此系列没有加入正则化项,即木有结构风险项,直接求解经验风险最小化

  • LinearRegression(线性回归)
    损失函数:L(y,f(θ))=12(yf(θ))2L(y,f(\theta))=\frac{1}{2}(y-f(\theta))^2
    优化方法:最小二乘法θ=(XTX)1XTY\theta=(X^TX)^{-1}X^TY

  • LogisticRegressionCV
    验证方式:交叉验证

  • SGDRegressor 采用梯度下降法的方式求解,可配置正则项,所以既是经验风险最小化,也具备结构风险最小化

Ridge系列

加入L2L_2正则化,对参数进行解空间约束,求解结构风险最小化,然而输入特征的维度很高,而且是稀疏线性关系的情况,不适合

  • Ridge:损失函数 L(y,f(θ))=12(yf(θ))2+12αθ22L(y,f(\theta))=\frac{1}{2}(y-f(\theta))^2+\frac{1}{2}\alpha||\theta||_2^2
  • RidgeCV :相对Ridge加入了交叉验证的流程,来帮忙我们选择一个合适的α\alpha,一般初始情况,会输入一系列α\alpha值,然后通过交叉验证,选出一个比较合适的。

Lasso系列

总概:加入L1L_1正则化,适用于高维稀疏情况
损失函数 :L(y,f(θ))=12(yf(θ))2+12αθL(y,f(\theta))=\frac{1}{2}(y-f(\theta))^2+\frac{1}{2}\alpha||\theta||

Lasso LassoCV LassoLars LassoLarsCV LassoLarsIC
优化方式 坐标轴下降法 坐标轴下降法 最小角回归法 最小角回归法 最小角回归法
验证方式 普通验证 交叉验证 普通验证 交叉验证 基于AIC和BIC
适用场景 学习,需要自己调α\alpha 通过MAE选择比较优的α\alpha 学习,手动调参 探索α\alpha更多相关值,样本数远小于样本特征数 数据是来自一个模型确定的大样本,并且样本数量够大

一般首选LassoCV,再选LassoLarsCV

Elastic系列

总概:对LASSO和Ridge的折中
损失函数:L(y,f(θ))=12(yf(θ))2+αρθ+12α(1ρ)θ22L(y,f(\theta))=\frac{1}{2}(y-f(\theta))^2+\alpha \rho||\theta||+\frac{1}{2}\alpha (1-\rho)||\theta||_2^2
ElasticNet和ElasticNetCV两者的验证方式不同,后者有交叉验证,不需要手动调参。

非0个数限制

总概:在原生系列的基础上加入参数非0最大值约束
损失函数:L(y,f(θ))=12(yf(θ))2L(y,f(\theta))=\frac{1}{2}(y-f(\theta))^2 其中非0参数θ\theta的个数有个最大值限制nnon−zero−coefs
OrthogonalMatchingPursuit和OrthogonalMatchingPursuitCV两者的区别也是验证方式,后者是交叉验证,不需要自己选择限制参数nnon−zero−coefs

Bayes系列

记录一篇博客,写得很赞
https://blog.csdn.net/daunxx/article/details/51725086

  • BayesianRidge:贝叶斯回归模型假设先验概率,似然函数和后验概率都是正态分布。回归系数θ\theta的先验分布规律为球形正态分布
  • ARDRegression:回归系数θ\theta采用与坐标轴平行的椭圆形高斯分布假设
  • 应用场景:如果我们的数据有很多缺失或者矛盾的病态数据,可以考虑BayesianRidge类,如果发现拟合不好,可以换ARDRegression试一试。因为ARDRegression对回归系数先验分布的假设没有BayesianRidge严格,某些时候会比BayesianRidge产生更好的后验结果。

相关文章:

  • 2021-04-11
  • 2021-12-13
  • 2021-12-18
  • 2022-12-23
  • 2021-08-17
  • 2021-05-29
  • 2022-02-25
  • 2022-01-05
猜你喜欢
  • 2022-01-14
  • 2021-05-20
  • 2022-01-15
  • 2022-12-23
  • 2022-12-23
  • 2022-02-18
  • 2022-12-23
相关资源
相似解决方案