LASSO回归之特征选择

MLE --framework – MAP

M L E : a r g m a x P ( D ∣ θ ) MLE:argmax P(D|\theta) MLE:argmaxP(Dθ)
M A P : a r g m a x P ( θ ∣ D ) MAP:argmaxP(\theta|D) MAP:argmaxP(θD) = a r g m a x P ( D ∣ θ ) P ( θ ) argmax P(D|\theta)P(\theta) argmaxP(Dθ)P(θ)
MAP 是在MLE的条件下考察 θ \theta θ的先验分布
from Guassian Prior to L2 Regularization
from Laplace Prior to L1 Regularization
在这里插入图片描述

LASSO回归VS特征选择

·如果维度太高,计算量也变得很高
·在稀疏性条件下,计算量只依赖于非0项的个数
·提高可解释性
N < D N<D N<D其中 N N N代表样本个数 D D D代表特征维度
特征选择的方法:
option1: Exhaustive Serah: all subsets
option2: Greedy Approaches:
·Forward Stepwise
·Backward Stepwise
option3: via Regularization

LASSO介绍

以线性回归的目标函数举例: L = ∥ X ω − Y ∥ F 2 + λ ∥ ω ∥ 1 L = \lVert X\omega - Y\rVert_F^2+\lambda\rVert\omega\rVert_1 L=XωYF2+λω1
∥ ω ∥ 1 \lVert\omega\rVert_1 ω1 ω \omega ω的梯度是多少:
∂ ∥ ω ∥ 1 ω j = ∂ ∣ ω j ∣ ω j \frac{\partial{\rVert\omega\rVert}_1}{\omega_j}=\frac{\partial{\vert\omega_j\vert}}{\omega_j} ωjω1=ωjωj
根据 ω j \omega_j ωj的取值分别有三种可能性。

Coordinate Descent

Goal: minimize some function g
g ( ω ) = g ( ω 1 , ω 2 , . . . , ω n ) g(\omega)=g(\omega_1,\omega_2,...,\omega_n) g(ω)=g(ω1,ω2,...,ωn)
每次只在一个维度上求解最小值,把其他维度看做常量求解,怎样选择下一个coordinate:1.依次选择 2.随机选择
不需要设定step-size,对于lasso objective,会收敛

coordinate descent for lasso

L = ∑ i = 1 n ( ∑ j = 1 d ω j x i j + b − y i ) 2 + λ ∑ j = 1 d ∣ ω j ∣ L=\sum_{i=1}^n(\sum_{j=1}^d\omega_jx_{ij}+b-y_i)^2+\lambda\sum_{j=1}^d\vert\omega_j\vert L=i=1n(j=1dωjxij+byi)2+λj=1dωj
∂ L ω l = 2 ∑ i = 1 n ( ∑ j = 1 d ω j x i j + b − y i ) ∗ x i l + λ ∗ ∂ ∑ j = 1 d ∣ ω j ∣ ω l \frac{\partial L}{\omega_l}=2\sum_{i=1}^n(\sum_{j=1}^d\omega_jx_{ij}+b-y_i)*x_{il}+ \lambda*\frac{\partial\sum_{j=1}^d\vert\omega_j\vert}{\omega_l} ωlL=2i=1n(j=1dωjxij+byi)xil+λωlj=1dωj
在这里插入图片描述
LASSO回归之所以产生稀疏解的原因,在于 C l C_l Cl落在 [ − λ , + λ ] [-\lambda,+\lambda] [λ,+λ]之间时就会强行令 ω l \omega_l ωl为0。

### 使用Lasso回归进行特征选择 #### Lasso回归简介 Lasso(Least Absolute Shrinkage and Selection Operator)是一种用于估计稀疏系数的线性模型。通过引入L1正则化项,使得一些特征的系数变为零,从而实现了自动化的特征选择过程[^1]。 #### 特征选择原理 由于Lasso加入了绝对值形式的惩罚因子,在优化过程中会迫使某些参数收缩至0,这样就相当于把这些对应的变量排除出了最终的预测方程之外。对于那些对目标变量影响较小或者说冗余度较高的输入属性来说,它们很容易被这种机制所剔除掉[^3]。 #### Python实现示例 下面是一个简单的Python代码片段展示如何利用`sklearn`库中的`LassoCV`来进行特征筛选: ```python from sklearn.linear_model import LassoCV import numpy as np import pandas as pd # 假设X为训练集数据矩阵,y为目标向量 data = {'Feature_1': [2, 8, 0, 4], 'Feature_2': [7, 9, 6, 5], 'Feature_3': [1, 5, 3, 2], 'Target': [1, 0, 1, 0]} df = pd.DataFrame(data) X = df[['Feature_1', 'Feature_2', 'Feature_3']] y = df['Target'] # 创建并拟合LassoCV对象 model = LassoCV(cv=5).fit(X, y) print("最佳alpha:", model.alpha_) print("各个特征的重要性(非标准化):", abs(model.coef_)) selected_features = X.columns[(abs(model.coef_) > 0)] print(f"选定的重要特征:{list(selected_features)}") ``` 这段程序首先创建了一个包含三个自变量的数据框,并指定了一个因变量作为标签列;接着定义了`LassoCV`实例并通过调用其`.fit()`方法完成建模工作;最后打印出经过交叉验证选出的最佳超参α以及各维度下权重大小,并据此判断哪些字段应该保留下来参与后续分析任务中去[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值