机器学习: 线性回归
文章目录
- 机器学习: 线性回归
- 1. 线性回归
- 1. 简介
- 2. 线性回归如何训练?
- 1. 损失函数
- 2. 正规方程
- 3. 梯度下降法
- 4. 两种方法的比较
- 2. 岭回归
- 岭回归与线性回归
- 3. Lasso 回归
- 4. ElasticNet 回归
- LWR - 局部加权回归
- QA
- 1. 最小二乘法估计
- 2. 最小二乘法的几何解释
- 3. 从概率角度看最小二乘法
- 4. 推一下线性回归的反向传播
- 5. 什么时候使用岭回归 ?
- 6. 什么时候使用 L1 正则化?
- 7. 什么时候使用 L1 正则化?
1. 线性回归
1. 简介
简单来说,线性回归算法就是找到一条直线(一元线性回归)或一个平面(多元线性回归)能够根据输入的特征向量来更好的预测输出y的值。
其本质含义在于 X 与 Y 是线性相关的。
y = θ 0 + θ 1 x 1 + ⋯ + θ p x p = θ T x y = \theta_0 + \theta_1x_1 + \cdots + \theta_px_p = \theta^Tx y=θ0+θ1x1+⋯+θpxp=θTx
2. 线性回归如何训练?
在线性回归中, 我们可以通过两种方法来求取参数 θ \theta θ , 一种是采用正规方程, 一种是采用梯度下降方法。
1. 损失函数
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 , 或 矩阵表示 : J ( θ ) = 1 2 m ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2, \qquad \\ 或 \\ 矩阵表示: J(\theta) = \frac{1}{2m} (X\theta-y)^T(X\theta - y) J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2,或矩阵表示:J(θ)=2m1(Xθ−y)T(Xθ−y)
2. 正规方程
我们使用 $J(\theta) $对 θ \theta θ 求导, 得到:
δ J ( θ ) δ θ = 2 X T ( X θ − y ) \frac{\delta J(\theta)}{\delta \theta} = 2 X^T(X\theta - y) δθδJ(θ)=2XT(Xθ−y)
令上式为0,我们可以得到 $ \theta$ 的值为:
θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)−1XTy
我们可以直接通过矩阵运算来求出参数 θ \theta θ 的解。 而上式我们发现其涉及到了矩阵的可逆问题,如果 $(XTX){-1} $可逆,那么参数 θ \theta θ 的解唯一。 如果不可逆, 则此时就无法使用正规方程的方法来解。
3. 梯度下降法
我们可以采用批量梯度下降算法, 此时有:
θ j = θ j − α δ δ θ j J ( θ ) 带入 J ( θ ) 得: θ j = θ j − α 1 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) 或矩阵表达: θ j = θ j + α 1 m ( y − X θ ) T x j \theta_j = \theta_j - \alpha \frac{\delta}{\delta \theta_j} J(\theta) \\ 带入J(\theta) 得: \theta_j = \theta_j - \alpha \frac{1}{m} \sum_{i=1}^m (y^{(i)} - h_\theta(x^{(i)}))x_j^{(i)} \\ 或矩阵表达:\theta_j = \theta_j + \alpha \frac{1}{m}(y-X\theta)^Tx_j θj=θj−αδθjδJ(θ)带入J(θ)得:θj=θj−αm1i=1∑m(y(i)−hθ(x(i)))xj(i)或矩阵表达:θj=θj+αm1(y−Xθ)Txj
4. 两种方法的比较
- 梯度下降中需要选择适当的学习率 $\alpha $
- 梯度下降法中需要多次进行迭代,而正规方程只需要使用矩阵运算就可以完成
- 梯度下降算法对多特征适应性较好,能在特征数量很多时仍然工作良好, 而正规方程算法复杂度为 $O(n^3) $,所以如果特征维度太高(特别是超过 10000 维),那么不宜再考虑该方法。
- 正规方程中矩阵需要可逆。
2. 岭回归
岭回归本质上是 线性回归 + L2 正则化。
h ^ θ ( x ) = h θ ( x ) + λ ∑ i w i 2 \hat{h}_{\theta}(x) = h_{\theta}(x) + \lambda \sum_i w_i^2 h^θ(x)=hθ(x)+λi∑wi2
岭回归与线性回归
线性回归中通过正规方程得到的 w 的估计:
w ^ = ( X T X ) − 1 X T y \hat{w} = (X^TX)^{-1}X^Ty w^=(XTX)−1XTy
但是,当我们有 N 个样本,每个样本有 x i ∈ R p x_i \in R^p xi∈Rp, 当 N < p 时, X T X X^TX XTX 不可逆, 无法通过正规方程计算,容易造成过拟合。
岭回归通过在矩阵 X T X X^TX XTX 上加一个 λ I \lambda I λI 来使得矩阵可逆, 此时的 w 的估计:
w ^ = ( X T X + λ I ) − 1 X T y \hat{w} = (X^TX + \lambda I)^{-1}X^Ty w^=(XTX+λI)−1XTy
而岭回归本质上是对 L ( w ) L(w) L(w) 进行 L2 正则化, 此时的 J ( w ) J(w) J(w) 表示为:
J ( w ) = ∑ i = 1 N ∣ ∣ w T x i − y i ∣ ∣ 2 + λ w T w = ( w T X T − Y T ) ( X w − Y ) + λ w T w = w T X