首页 > 编程知识 正文

lasso回归外部验证,lasso回归哪个软件做简单

时间:2023-05-03 11:13:40 阅读:49766 作者:3044

LASSO回归增加了l2正则罚项,再小也不能保留建模时的所有变量,降低模型的复杂度。

LASSO回归,不重要的回归系数缩小为0。

LASSO回归模型的目标函数:

使用坐标轴下降法:

在迭代算法中,坐标轴下降法沿坐标轴下降,梯度下降沿梯度的负方向下降。 对于p维参数的可微凸函数j(b ),如果点b存在使得函数j ) b )对于每个坐标轴为最小值,则j ) b )是b上的全局最小值。

坐标轴下降法对目标函数中的某个Bi建立偏导数。 即,通过不变地控制其他p-1个参数,沿一个轴的方向求出导数,并且对剩馀的p-1个参数求出导数,将每个分量的导数设为0,得到目标函数成为全局最小值。

其中ess(b )表示误差平方和,(lambdal ) b表示惩罚项,

假设XIJ=HJ(Xi )

惩罚项是非导数,所以不能直接用梯度法,用副梯度法解决非导凸函数的最小值。

对某些分量Bj来说,惩罚项是lambda|Bj|

副导数如下。

为了求解最终的LASSO回归函数,需要结合ESS和l1的分量导数,使函数为0

如下所示。

1 .可视化

选定的惩罚系数lambda的值

froms klearn.linear _ modelimportlasso,lassocvlasso(alpha=1.0,fit_intercept,normalize,precompute, copy_X selection='cyclic ' ) #precompute :通过在建模前计算Gram矩阵来提高运算速度,缺省False#copy_X :复制参数x的数值#tol :模型收敛warm_start :上次训练结果为下一个开始的默认false#positive :将回归系数强制为正数#selection :反复时选择的回归系数#random :随机更新回归系数#cyclic :更新上次的回归系数forlambdainlambdas : lasso=lasso (alpha=lambda,normalize=True,max_iter=10000 ) lasso.fit ) x_train, y _ train (lasso _ coefficients.append ) lasso.coef_ ) PLT.plot ) lambdas,lasso _ coefficients (PLT.xscale )

2 .交叉核对

lassocv(EPS=0.001,n_alphas,alphas,fit_intercept,normalize,precompute,max_iter,tol,copy_X, 指定cv selection(#EPS )规范化路径的长度,指定默认值0.001、指定lambda的最大值和最小值的商#n_alphas )规范化lambda的数量,以及默认100个#verbose )列表使用n_jobs )并行处理lasso的normalize=True,cv=10,max_iter=10000 ) lasso_cv.fit(x_train,y_train ) lasso

基于Lasso的Lasso回归模型重构

lasso=lasso (alpha=lasso _ best _ alpha,normalize=True,max_iter=10000 ) lasso.fit ) y_train,y _ trairaize

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。