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,以便选择最佳特征。