第四章 多变量线性回归

第四章 多变量线性回归

4.1 多变量 Multiple features

  • 标记 Notation
    • n n n:特征数量(变量数量)
    • m m m :样本数量
    • x ( i ) x^{(i)} x(i) :索引样本(一个 n n n 维变量)
    • x j ( i ) x^{(i)}_j xj(i):第 i i i 个样本的第 j j j 个特征量的值
  • 函数变化 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2+...+θnxn.
    • 内积 inner product 表示:设 x 0 = 1 x_0=1 x0=1,则 h θ ( x ) = θ T ⋅ x = [ θ 0 , θ 1 , θ 2 , . . . , θ n ] ⋅ [ x 0 x 1 x 2 . . . x n ] h_{\theta}(x)={\color{red}\theta^T\cdot x}=\begin{bmatrix}\theta_0,\theta_1,\theta_2,...,\theta_n\end{bmatrix}\cdot \begin{bmatrix}x_0\\x_1\\x_2\\...\\x_n\end{bmatrix} hθ(x)=θTx=[θ0,θ1,θ2,...,θn]x0x1x2...xn,记为多元线性回归 Multivariate linear regression

4.2 多元梯度下降法

Hypothesis h θ ( x ) = θ T x = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}(x)=\theta^Tx=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θTx=θ0x0+θ1x1+θ2x2+...+θnxn

Parmeters θ ^ = θ 0 , θ 1 , . . . , θ n \hat\theta=\theta_0,\theta_1,...,\theta_n θ^=θ0,θ1,...,θn

Cost function J ( θ 0 , θ 1 , . . . , θ n ) = J ( θ ^ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1,...,\theta_n)=J(\hat\theta)=\dfrac{1}{2m}\sum\limits_{i=1}^m\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^2 J(θ0,θ1,...,θn)=J(θ^)=2m1i=1m(hθ(x(i))y(i))2

  • 梯度下降法 Gradient Descent:当 n ≥ 1 n\ge 1 n1
    R e p e a t { θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) } j = 0 , 1 , . . . , n Repeat\left\{\theta_j:=\theta_j-\alpha\dfrac{1}{m}\sum\limits_{i=1}^m\left(h_{\theta}(x^{(i)})-y^{(i)} \right)x_j^{(i)}\right\}\qquad j=0,1,...,n Repeat{θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)}j=0,1,...,n

  • 特征缩放 Feature Scaling

    • 目的:使得特征量范围相近,减少迭代次数,增加下降速度
    • 方法:使得每个特征量在 [ − 1 , 1 ] [-1,1] [1,1] 的范围内。(若大于 [ − 3 , 3 ] [-3,3] [3,3] 或小于 [ − 1 3 , 1 3 ] [-\frac{1}{3},\frac{1}{3}] [31,31] 时就需要除以最大值进行调整)
    • 均值归一化 Mean Normalization:先用 x i − μ i x_i-\mu_i xiμi 代替 x i x_i xi 来使平均值约为 0 0 0

      近似即可

      x i ⟵ x − μ i s i = x − μ i max ⁡ − min ⁡ x_i\longleftarrow \dfrac{x-\mu_i}{s_i}= \dfrac{x-\mu_i}{\max-\min} xisixμi=maxminxμi

  • 学习率 Learning Rate α \alpha α

    Gradient descent θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j:=\theta_j-\alpha\dfrac{\partial}{\partial\theta_j}J(\theta) θj:=θjαθjJ(θ)

    • 自动收敛测试 J ( θ k ) − J ( θ k + 1 ) ≤ ε J(\theta_k)-J(\theta_{k+1})\le \varepsilon J(θk)J(θk+1)ε

    • 代价函数随迭代步数增加的变化曲线

      1. 可判断梯度下降法是否已收敛(当曲线几乎平坦时)

      2. 可判断梯度下降法是否正常工作(保证曲线单调下降)。若曲线上升,说明需用更小的学习率

    • 总结 α \alpha α 太小,导致收敛过慢。 α \alpha α 太大,可能导致代价函数 J ( θ ) J(\theta) J(θ) 不下降或不收敛。

    • α \alpha α 选择方法:三倍一取,即 α = 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 \alpha=0.001,0.003,0.01,0.03,0.1,0.3 α=0.001,0.003,0.01,0.03,0.1,0.3

4.3 特征和多项式回归

  • 选择特征 Choose Features:当预测房价时,已知临街宽度 frontage 与纵深宽度 depth 得到回归方程
    h θ ( x ) = θ 0 + θ 1 × frontage + θ 2 × depth h_\theta(x)=\theta_0+\theta_1\times \text{frontage} +\theta_2\times \text{depth} hθ(x)=θ0+θ1×frontage+θ2×depth但是更好的回归方程应该为
    area = frontage × depth h θ ( x ) = θ 0 + θ 1 × area \color{red}\text{area}=\text{frontage}\times\text{depth}\\ h_\theta(x)=\theta_0+\theta_1\times \text{area} area=frontage×depthhθ(x)=θ0+θ1×areaarea新的更合适的特征(变量)

  • 多项式回归 Polynomial Regression:利用线性回归拟合复杂函数(例:非线性函数)

    • 选择特征为初始特征的函数,代入回归方程中
    • 应用特征缩放:使不同函数的特征值可比较

4.4 正规方程

正规方程:一种求线性回归的代价函数 J ( θ ) J(\theta) J(θ) 取最小值时的 θ \theta θ 的解析解法,无需运行迭代方程

  • 微积分求(偏)导,使(偏)导数为零,解方程。

    缺点:计算量太大

  • 正规方程法 Normal equation

    • 例题:样本数量 m = 4 m=4 m=4 的数据集

      方法:加入 x 0 x_0 x0,使其均置为 1 1 1。建立设计矩阵 Design Matrix X m × ( n + 1 ) X_{m\times(n+1)} Xm×(n+1) y m y_m ym,则
      θ = ( X T x ) − 1 X T y \theta=(X^Tx)^{-1}X^Ty θ=(XTx)1XTy为函数取最小值时的解 θ \theta θ

      Matlab 代码

      pinv(X' * X) * X' * y  # Octave
      
    • 优点

      1. 不需要根据迭代次数最少尝试不同的学习率 α \alpha α
      2. 不需要迭代
    • 缺点:由于 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 n × n n\times n n×n 矩阵,计算逆矩阵复杂度为 O ( n 3 ) O(n^3) O(n3),若 n n n 很大时,计算将会很慢。一般 n < 10000 n<10000 n<10000 时可以用正规方程法。

  • 正规方程的不可逆性:当 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 为奇异 Singular 或退化矩阵 Degenerate Matrices

    Octave 内使用 pinv() 函数(即伪逆函数 pseudo-inverse),可无视是否可逆

    • 主要原因
      1. 存在冗余变量 Redundant Features:即线性相关
        方法:删除相关变量
      2. 变量太多(数据太少):即 m ≤ n m\le n mn
        方法:删除变量或使用正则化 Regularization
        即线性相关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值