第四章 多变量线性回归
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)=θT⋅x=[θ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=1∑m(hθ(x(i))−y(i))2
-
梯度下降法 Gradient Descent:当 n ≥ 1 n\ge 1 n≥1 时
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=1∑m(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} xi⟵six−μi=max−minx−μi
-
学习率 Learning Rate: α \alpha α
Gradient descent: θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j:=\theta_j-\alpha\dfrac{\partial}{\partial\theta_j}J(\theta) θj:=θj−α∂θj∂J(θ)
-
自动收敛测试: J ( θ k ) − J ( θ k + 1 ) ≤ ε J(\theta_k)-J(\theta_{k+1})\le \varepsilon J(θk)−J(θk+1)≤ε
-
代价函数随迭代步数增加的变化曲线:
-
可判断梯度下降法是否已收敛(当曲线几乎平坦时)
-
可判断梯度下降法是否正常工作(保证曲线单调下降)。若曲线上升,说明需用更小的学习率
-
-
总结: α \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×area即 area 为新的更合适的特征(变量)。 -
多项式回归 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
-
优点:
- 不需要根据迭代次数最少尝试不同的学习率 α \alpha α
- 不需要迭代
-
缺点:由于 ( 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),可无视是否可逆
- 主要原因:
- 存在冗余变量 Redundant Features:即线性相关
方法:删除相关变量 - 变量太多(数据太少):即
m
≤
n
m\le n
m≤n
方法:删除变量或使用正则化 Regularization
即线性相关
- 存在冗余变量 Redundant Features:即线性相关
- 主要原因: