吴恩达老师机器学习课程笔记 04 多元线性回归

4 多元线性回归

4.1 多维特征

之前研究的线性回归问题中只有一个单一的特征,但对于其他问题也可以有多个特征,这种线性回归问题就被称为多元线性回归。

记号约定

n n n表示特征量的数目,用 x ( i ) x^{(i)} x(i)表示第 i i i个样本的输入特征向量,这个向量是一个 n n n维向量。(注意这里的特征向量并非过去矩阵中所讲的特征向量。)

x j ( i ) x^{(i)}_j xj(i)表示第 i i i个样本的第 j j j个特征量的值。

假设函数

多变量线性回归的假设函数 h h h应该表示为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ(x)=θ0+θ1x1+θ2x2++θnxn

为了简化表示,可以引入 x 0 = 1 x_0=1 x0=1,则 h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n h_{\theta}(x)=\theta_{0} x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ(x)=θ0x0+θ1x1+θ2x2++θnxn。此时特征向量变成了 n + 1 n+1 n+1维。

可以将特征向量用 X X X表示,参数用向量 Θ \Theta Θ表示,则 h θ ( x ) = Θ T X h_{\theta}(x)=\Theta^TX hθ(x)=ΘTX

总结

4.2 多变量梯度下降法

多变量梯度下降法参数更新规则

θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_{0}:=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{0}^{(i)} θ0:=θ0am1i=1m(hθ(x(i))y(i))x0(i)
θ 1 : = θ 1 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 1 ( i ) \theta_{1}:=\theta_{1}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{1}^{(i)} θ1:=θ1am1i=1m(hθ(x(i))y(i))x1(i)
θ 2 : = θ 2 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 2 ( i ) \theta_{2}:=\theta_{2}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{2}^{(i)} θ2:=θ2am1i=1m(hθ(x(i))y(i))x2(i)

总结

多变量梯度下降法参数更新规则与单变量梯度下降法参数更新规则是类似的。

4.3-4.4 梯度下降法实用技巧

技巧1-特征缩放

对于多特征问题,如果特征都具有相近的尺度(即不同特征的取值在相近的范围内),梯度下降法将更快收敛。

解决的方法是尝试将所有特征的尺度都尽量缩放到-1到1之间(或接近-1到1即可)。具体的实现方法是可以将每一个特征都除以其最值。也可以进行均值归一化,即对于 i ≥ 1 i\ge1 i1 x i = x i − μ i s i x_{i}=\frac{x_{i}-\mu_{i}}{s_i} xi=sixiμi,其中 μ i \mu_{i} μi是特征值的平均值, s i s_{i} si是特征值的范围(最大值减最小值),将 s i s_{i} si设置为标准差也行,这样可以大概使得特征 x i x_i xi处于-0.5到0.5之间。

技巧2-学习率

对于每一个特定的问题,梯度下降法所需的迭代次数可能会相差很大。绘制代价函数关于迭代次数的曲线图,通过这个图像可以判断梯度下降法是否已经收敛。也可以通过自动收敛测试的方法进行判断,将代价函数值一次迭代之后的减少的与阀值(例如 0.001)进行比较,但由于通常要选择一个合适的阈值十分困难,因此用图像判断梯度下降法是否收敛更加合适。

同时代价函数关于迭代次数的曲线图还可以判断算法是否有正常工作,例如如果曲线图是上升的或部分上升,那么则很可能是 α \alpha α过大导致的问题。

梯度下降算法的每次迭代受到学习率的影响,如果学习率过小,则达到收敛所需的迭代次数会非常高;如果学习率过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

通常可以考虑先尝试学习率 α = 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 1 \alpha=0.001,0.003,0.01,0.03,0.1,1 α=0.0010.0030.010.030.11,每3倍取一个值,然后选择选择使得代价函数快速下降的 α \alpha α,然后选择这些值中的最大的值作为最终选择的 α \alpha α

总结

用特征缩放的技巧,可以使得梯度下降更快,收敛所需迭代次数更少。

通过观察代价函数关于迭代次数的曲线图,可以选择合适的学习率。

4.5 特征和多项式回归

特征选择

矩阵的长和矩阵的宽这两个特征,可能可以用面积这一个特征来替代,因此有时定义新的特征可能会得到更好的模型。

线性回归并不适用于所有数据,有时可能需要用二次模型或三次模型来拟合数据,但可以将这些模型也转化为线性回归模型,如 h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 h_{\theta}(x)=\theta_{0}+\theta_{1} x+\theta_{2} x^{2}+\theta_{3} x^{3} hθ(x)=θ0+θ1x+θ2x2+θ3x3可以通过令 x 2 = x 2 , x 3 = x 3 x_{2}=x^{2}, x_{3}=x^{3} x2=x2,x3=x3转化为 h θ ( X ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 h_{\theta}(X)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}^{2}+\theta_{3} x_{3}^{3} hθ(X)=θ0+θ1x1+θ2x22+θ3x33。多项式回归也与特征选择密切相关,并且如果选择了 x 2 = x 2 , x 3 = x 3 x_{2}=x^{2}, x_{3}=x^{3} x2=x2,x3=x3这类特征,特征缩放就变得十分重要。

总结

对于多变量线性回归问题,选择合适的特征会使得学习算法更加有效。

通过特征选择多项式回归能够用线性回归的方法来拟合。

4.6 正规方程

正规方程法

为了最小化代价函数,梯度下降法是经过多次迭代来收敛到全局最小值,而正规方程是一种求 θ \theta θ的解析解法,一次性地求解 θ \theta θ的最优值。

按照微积分中的方法,可以通过求偏导数,并通过求解由 ∂ ∂ θ j J ( θ j ) = 0 \frac{\partial}{\partial \theta_{j}} J\left(\theta_{j}\right)=0 θjJ(θj)=0构成的线性方程组,来求解代价函数的最小值。

令训练集特征矩阵为 X X X (包含了 x 0 ( i ) = 1 x^{(i)}_0=1 x0(i)=1 ) ,训练集结果为向量 y y y,则利用正规方程可以解出使得代价函数最小的 θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy

需要说明的是,如果使用的是正规方程法,则不需要进行特征缩放。

梯度下降法与正规方程法的比较

梯度下降 正规方程
需要尝试并选择学习率 不需要选择学习率
需要多次迭代,计算可能更慢 一次计算即可,也不需要采取额外的步骤检验收敛性
当特征数量较大时也能较好适用 需要计算 ( X T X ) − 1 \left(X^{T} X\right)^{-1} (XTX)1,如果特征数 n较大则运算代价大,因为矩阵逆的计算时间复杂度为 ( 3 ) (^3) O(n3),通常来说当 n小于10000时还是可以接受的
适用于各种类型的模型 只适用于线性模型,不适合逻辑回归模型、分类模型等其他模型

总结

对于线性回归模型,当特征数 n较小时( n小于10000),正规方程法较好,当特征数 n较大时,梯度下降法较好。

对于更复杂的模型,正规方程法不适用。

你可能感兴趣的:(机器学习,线性回归)