当前位置: 代码迷 >> 综合 >> 多变量线性回归(Linear Regression with Multiple Variables)
  详细解决方案

多变量线性回归(Linear Regression with Multiple Variables)

热度:70   发布时间:2023-12-16 06:48:01.0

1 多维特征

在上一篇文章中,探讨了单变量/特征的回归模型。现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,…,xn)。
在这里插入图片描述
增添更多特征后,我们引入一系列新的注释:

n 代表特征的数量

x(i)代表第 i 个训练实例,是特征矩阵中的第 i 行,是一个向量(vector)。

比方说,上图的
在这里插入图片描述

xj(i)代表特征矩阵中第 i 行的第 j 个特征,也就是第 i 个训练实例的第 j 个特征。

如上图的x2(3)=3,x3(2)=2;

支持多变量的假设 h 表示为:hθ(x)=θ0+θ1x1+θ2x2+…+θnxn\ h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ?(x)=θ0?+θ1?x1?+θ2?x2?++θn?xn?,这个公式中有 n+1 个参数和 n 个变量,为了使得公式能够简化一些,引入x0\ x_{0} x0?,则公式转化为:hθ(x)=θ0x0+θ1x1+θ2x2+…+θnxn\ h_{\theta}(x)=\theta_{0}x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ?(x)=θ0?x0?+θ1?x1?+θ2?x2?++θn?xn?

此时模型中的参数是一个 n+1 维的向量,任何一个训练实例也都是 n+1 维的向量,特征矩阵 X 的维度是m?(n+1)\ m *(n+1) m?(n+1),因此公式可以简化为:hθ(x)=θTX\ h_{\theta}(x)={\theta}^TX hθ?(x)=θTX,其中上标 T 代表矩阵转置。



多变量梯度下降

与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,则这个代价函数是建模误差的平方和,即:J(θ0,θ1…θn)=12m∑i=1m(hθ(x(i))?y(i))2\ J\left(\theta_{0}, \theta_{1} \ldots \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0?,θ1?θn?)=2m1?i=1m?(hθ?(x(i))?y(i))2
其中:hθ(x)=θTX=θ0+θ1x1+θ2x2+…+θnxn\ h_{\theta}(x)=\theta^{T} X=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ?(x)=θTX=θ0?+θ1?x1?+θ2?x2?++θn?xn?

我们的目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数。 多变量线性回归的批量梯度下降算法为:

在这里插入图片描述
求导数后得到:

在这里插入图片描述
n≥1\ n≥1 n1时,θ0:=θ0?a1m∑i=1m(hθ(x(i))?y(i))x0(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?:=θ0??am1?i=1m?(hθ?(x(i))?y(i))x0(i)?

θ1:=θ1?a1m∑i=1m(hθ(x(i))?y(i))x1(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?:=θ1??am1?i=1m?(hθ?(x(i))?y(i))x1(i)?

θ2:=θ2?a1m∑i=1m(hθ(x(i))?y(i))x2(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?:=θ2??am1?i=1m?(hθ?(x(i))?y(i))x2(i)?
… …
我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛



3 梯度下降法实践——特征缩放

在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛

以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
在这里插入图片描述
解决的方法是尝试将所有特征的尺度都尽量缩放到-1到1之间。

在这里插入图片描述
最简单的方法是令:xn=xn?μnsn\ x_{n}=\frac{x_{n}-\mu_{n}}{s_{n}} xn?=sn?xn??μn??,其中μn\mu_{n}μn?是平均值,sn\ s_{n} sn?是标准差。



4 梯度下降法实践——学习率

梯度下降算法的每次迭代受到学习率的影响

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

通常可以考虑尝试些学习率:

α=0.01,0.03,0.1,0.3,1,3,10\ \alpha= 0.01,0.03,0.1,0.3,1,3,10 α=0.01,0.03,0.1,0.3,1,3,10








以上是对吴恩达老师课程的知识总结

  相关解决方案