第四章 多变量线性回归
4.1 多变量 Multiple features4.2 多元梯度下降法4.3 特征和多项式回归4.4 正规方程 第四章 多变量线性回归 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^Tcdot x}=begin{bmatrix}theta_0,theta_1,theta_2,...,theta_nend{bmatrix}cdot begin{bmatrix}x_0\x_1\x_2\...\x_nend{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 hattheta=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(hattheta)=dfrac{1}{2m}sumlimits_{i=1}^mleft(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 nge 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 Repeatleft{theta_j:=theta_j-alphadfrac{1}{m}sumlimits_{i=1}^mleft(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_ilongleftarrow 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-alphadfrac{partial}{partialtheta_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_1times text{frontage} +theta_2times text{depth} hθ(x)=θ0+θ1×frontage+θ2×depth但是更好的回归方程应该为
area = frontage × depth h θ ( x ) = θ 0 + θ 1 × area color{red}text{area}=text{frontage}timestext{depth}\ h_theta(x)=theta_0+theta_1times 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_{mtimes(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 ntimes 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 mle n m≤n
方法:删除变量或使用正则化 Regularization
即线性相关
方法:删除相关变量变量太多(数据太少):即 m ≤ n mle n m≤n
方法:删除变量或使用正则化 Regularization