当前位置: 首页 > ds >正文

机器学习基础 - 回归模型之线性回归

机器学习: 线性回归


文章目录

  • 机器学习: 线性回归
    • 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=1m(hθ(x(i))y(i))2,矩阵表示:J(θ)=2m1(y)T(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(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=1m(y(i)hθ(x(i)))xj(i)或矩阵表达:θj=θj+αm1(y)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)+λiwi2

岭回归与线性回归

线性回归中通过正规方程得到的 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 xiRp, 当 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

http://www.xdnf.cn/news/2117.html

相关文章:

  • SD2351核心板:重构AI视觉产业价值链的“超级节点”
  • 【高频考点精讲】JavaScript事件循环机制:从宏任务微任务到渲染时机
  • MySQL数据库(13) 用户管理
  • Redis高效赋能机器学习实战:用FastAPI打造智能钓鱼邮件识别与缓存系统全流程解析
  • nacos设置权重进行负载均衡不生效
  • MongoDB 图片 URL 存储异常问题解决方案
  • C++入侵检测与网络攻防之网络嗅探以及ARP攻击
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Linux文件管理(2)
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • 深入理解网络原理:UDP协议详解
  • 如何用WordPress AI插件自动生成SEO文章,提升网站流量?
  • 每日两道leetcode(补充一)
  • Linux网络编程 原始套接字与ARP协议深度解析——从数据包构造到欺骗攻防
  • 配置Ubuntu18.04中的Qt Creator为中文(图文详解)
  • 腾讯PC客户端面经
  • Tailwind CSS实战:快速构建定制化UI的新思路
  • 无线通信网
  • 面向对象编程核心:封装、继承、多态与 static 关键字深度解析
  • 汽车售后 D - PDU 和 J2543 详细介绍
  • 【GCC bug】libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found
  • ISCTF2024-misc(部分)
  • JavaScript学习教程,从入门到精通,Ajax数据交换格式与跨域处理(26)
  • GitHub Copilot (Gen-AI) 很有用,但不是很好
  • Object.defineProperty 与 Proxy解析
  • 【OpenGL】聚光灯照明 Assignment | 5.3.7.Tiger Shading PS SC BL GLSL
  • 汽车行业EDI教程——北美X12标准 需求分析及方案
  • 【EDA】EDA中聚类(Clustering)和划分(Partitioning)的应用场景
  • React类组件与React Hooks写法对比
  • Float32、Float16、BFloat16