• Ridge、Lasso、ElasticNet 回归



    线性回归中,提到线性回归的 \(L2\) 正则化(\(Ridge\) 回归),以及线性回归的 \(L1\) 正则化(\(Lasso\) 回归).



    1. 线性回归

    线性回归的矩阵形式:

    \[\pmb{h_\theta X = X \theta} \]

    极小化损失函数:

    \[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta -Y)} \]

    用梯度下降法求解,每一轮 \(\theta\) 的表达式:

    \[\theta = \theta - \alpha \pmb{X}^T (\pmb{X} \theta - \pmb{Y}) \]

    其中,\(n\) 为样本个数,\(\alpha\) 为步长。

    用最小二乘法,\(\theta\) 的表达式:

    \[\theta = \pmb{(X^TX)^{-1} X^TY} \]



    2. Ridge 回归

    损失函数加入 \(L2\) 正则化项和权重系数 \(\pmb{\alpha}\) 的就是 \(Ridge\) 回归,也称岭回归、脊回归

    损失函数的表达式:

    \[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta - Y)} + \frac{1}{2} \pmb{\alpha ||\theta||_{2}^{2}} \]

    其中,\(n\) 为样本个数,\(\pmb{\alpha}\) 为常数系数,\(\pmb{||\theta||_2}\)\(L2\) 范数。

    \(Ridge\) 回归用梯度下降法求解,每一轮 \(\theta\) 的表达式:

    \[\theta = \theta - \beta(\pmb{X^T}(\pmb{X}\theta - \pmb{Y}) + \pmb{\alpha} \theta) \]

    其中,\(\beta\) 为步长。

    用最小二乘法,\(\theta\) 的表达式:

    \[\theta = \pmb{(X^TX + \alpha E)^{-1} X^TY} \]

    其中,\(E\) 为单位矩阵。

    \(Ridge\) 回归选择所有变量的情况下,缩小了回归系数,使得模型相对比较稳定,但模型的变量过多,解释性差

    \(Lasso\) 回归克服 \(Ridge\) 回归变量过多的缺点。



    3. Lasso 回归

    损失函数加入 \(L1\) 正则化和权重系数 \(\pmb{\alpha}\) 就是 \(Lasso\) 回归。

    损失函数表达式:

    \[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta - Y)} + \pmb{\alpha ||\theta||_1} \]

    其中,\(n\) 为样本个数,\(\pmb{\alpha}\) 为常数系数,\(\pmb{||\theta||_1}\)\(L1\) 范数。

    \(Lasso\) 回归使一些系数变小,甚至还使一些绝对值较小的系数直接变为 \(0\),因此特别适用于参数个数缩减与参数的选择,因而用来估计稀疏参数的线性模型,

    \(Lasso\) 回归的损失函数不是连续可导的,由于 \(L1\) 范数用的是绝对值之和,导致损失函数有不可导点。也就是说,用来求损失函数极小值的方法,最小二乘法、梯度下降法、拟牛顿法、牛顿法,对它都是失效的

    所以 \(Lasso\) 回归的损失函数求极值方法:坐标轴下降法(\(coordinate\ descent\))、最小角回归法(\(Least\ Angle\ Regression,\ LARS\)



    4. 坐标轴下降法求解 Lasso 回归


    5. 最小角回归法求解 Lasso 回归


    6. ElasticNet 回归

    损失函数加入 \(L1、L2\) 正则化和权重系数 \(\lambda、\rho\) 就是弹性网络回归算法(\(Elastic\ Net\ Regression\))。

    损失函数表达式:

    \[L(\theta) = \sum_{i=1}^{n}(h_{\theta}(x_{0}^{(i)},x_{1}^{(i)},...,x_{m}^{(n)})- y_i)^2 + \lambda \rho ||\theta||_1 + \frac{\lambda (1-\rho)}{2} ||\theta||_2^2 \]

    其中,\(n\) 表示样本个数,\(m\) 表示维度。

    \(\rho = 0\) 时,\(ElasticNet\) 回归等同于 \(Ridge\) 回归

    \(\rho=1\) 时,,\(ElasticNet\) 回归等同于 \(Lasso\) 回归,此时,\(ElasticNet\) 回归的损失函数不是连续可导的,可用坐标轴下降法、最小角回归法求解 \(\theta\)

    7. 总结

    \(Lasso\) 回归是在 \(Ridge\) 回归的基础上发展起来的,如果模型的特征非常多,选择 \(Lasso\) 回归。



    来自:刘建平

  • 相关阅读:
    Unity学习
    C#文件操作
    Unity3D XLua热更新流程
    Unity编辑器扩展
    Unity性能优化
    Unity热更新 xLua
    Unity热更新 AssetBundle
    Quickcocos从安装到打包
    EasyTouch5插件使用 EasyTouch手势检测功能
    PHP CURL HTTPS内存泄露问题
  • 原文地址:https://www.cnblogs.com/keye/p/14674095.html
Copyright © 2020-2023  润新知