【学习笔记】Lasso Feature Selection的系列知识
1. 线性回归-Linear Regression
- 用输入特征的线性组合建模目标变量
y
p
r
e
d
=
a
0
+
a
1
x
1
+
.
.
.
+
a
n
x
n
y_{pred}=a_0+a_1x_1+...+a_nx_n
ypred=a0+a1x1+...+anxn
系数
a
i
a_i
ai要去最小化某个代价函数 - 均方误差损失函数(MSE)
∑
i
=
1
N
t
r
a
i
n
i
n
g
(
y
r
e
a
l
(
i
)
−
y
p
r
e
d
(
i
)
)
2
\sum_{i=1}^{N_{training}}(y^{(i)}_{real}-y^{(i)}_{pred})^2
i=1∑Ntraining(yreal(i)−ypred(i))2 - 线性回归对共线性(Collinearity)非常敏感,即特征之间的相关性
考虑预测的方差:
σ
y
p
r
e
d
2
=
∑
i
a
i
2
σ
i
2
+
∑
i
≠
j
a
i
a
j
ρ
i
j
σ
i
σ
j
\sigma^2_{y_{pred}}=\sum_ia^2_i\sigma^2_i+\sum_{i\neq j}a_ia_j\rho_{ij}\sigma_i\sigma_j
σypred2=i∑ai2σi2+i=j∑aiajρijσiσj
σ
i
\sigma_i
σi:第
i
i
i个特征的标准差
ρ
i
j
\rho_{ij}
ρij:是特征i和特征j的皮尔森系数
发现,互相正相关的特征会增加预测的方差,这是线性回归的很大的问题 - 要避免共线性,就要提前进行特征选择,比如PCA可以得到不相关的特征
2. 岭回归(Ridge regression)
- 在损失函数里加入
l
2
l_2
l2惩罚项
∑
i
=
1
N
t
r
a
i
n
i
n
g
(
y
r
e
a
l
(
i
)
−
y
p
r
e
d
(
i
)
)
2
+
α
∑
j
=
1
n
a
j
2
\sum_{i=1}^{N_{training}}(y^{(i)}_{real}-y^{(i)}_{pred})^2+\alpha\sum_{j=1}^na_j^2
i=1∑Ntraining(yreal(i)−ypred(i))2+αj=1∑naj2
α
\alpha
α:超参数
目的是缩小参数值以扔掉没用的特征 - 只有一个超参数,所以要提前缩放特征,可以使用规范化等技术(数据预处理)。
惩罚项可以减少过拟合的风险,有时岭回归可以使某些特征的系数为0,相当于实施了特征选择
3. Lasso 回归
- 使用
l
1
l_1
l1惩罚项
1
2
N
t
r
a
i
n
i
n
g
∑
i
=
1
N
t
r
a
i
n
i
n
g
(
y
r
e
a
l
(
i
)
−
y
p
r
e
d
(
i
)
)
2
+
α
∑
j
=
1
n
∣
a
j
∣
\frac{1}{2N_{training}}\sum_{i=1}^{N_{training}}(y^{(i)}_{real}-y^{(i)}_{pred})^2+\alpha\sum_{j=1}^n|a_j|
2Ntraining1i=1∑Ntraining(yreal(i)−ypred(i))2+αj=1∑n∣aj∣ - 特征的系数越大,损失函数的值就越大
- 自动特征选择,如果两个特征是线性相关的,它们的同时存在将增加代价函数的值,因此Lasso回归将尝试将不太重要的特征的系数缩小到0,以便选择最佳特征。