【机器学习】正规方程

文章介绍了特征工程在预测模型中的作用,如何通过组合特征提高模型性能。接着讨论了多项式回归,特别是为何在房价预测中选择三次函数而非二次函数。文章还详细解释了正规方程和最小二乘估计在求解线性回归参数中的应用,以及它们与梯度下降法的比较,指出每种方法的适用场景和优缺点。
摘要由CSDN通过智能技术生成

上一章——多元梯度下降法


特征工程

在前面的章节中,我们在讲房子价格预测问题的时候,提到了房子的价格可以有很多特征
在这里插入图片描述
假设现在h的式子如上所示,这是一个有两个特征的线性假设公式,不难发现有frontage(代表长)和depth(宽)两个特征,看到长和宽,我们会自然想到占地面积
那我们可不可以用占地面积来做特征呢,是否以占地面积为特征可以同时表示长和宽两个特征呢?
答案是可以的,并且将会比原来用长和宽作为特征要更好(因为现实中也是将占地面积作为重要判断标准的,而非长宽)
在这里插入图片描述
(上图中用面积x作为特征,面积=长*宽)
因此,即使面对同样的特征,也可以得到不同的方案,这取决于你看待问题的角度。
特征工程说明了,有时我们通过变形或者组合原有特征所得到的新特征可以得到更好的模型。


多项式回归

在这里插入图片描述
依旧是住房问题,我们看看上方给出的图片。
图中有两条曲线:一条是二次函数的蓝线,一条是三次函数的绿线,根据现在给出的数据来看,二者的拟合程度是差不多的,那么我们应该选择几次项来拟合呢?
答案是三次项,首先一次项的拟合程度一定是最差的。训练集整体的走向看起来就像是二次或者三次函数。
虽然二次函数看起来比三次函数更加拟合,但是如果选择二次函数就会发现一个问题:这个二次函数是开口向下的,也就是说接下来它的price将会往下走,而这是不可能的,因为横轴代表的是房子的大小,不可能会出现房子越大,价格越低的情况,因此我们不能用二次函数来拟合。
所以,三次函数显然才是更好的选择。

h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 h_θ(x)=θ_0+θ_1x_1+θ_2x_2+θ_3x_3 hθ(x)=θ0+θ1x1+θ2x2+θ3x3
= θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) 2 + θ 3 ( s i z e ) 3 =θ_0+θ_1(size)+θ_2(size)^{2}+θ_3(size)^3 =θ0+θ1(size)+θ2(size)2+θ3(size)3
x 1 = ( s i z e ) x_1=(size) x1=(size)
x 2 = ( s i z e ) 2 x_2=(size)^2 x2=(size)2
x 3 = ( s i z e ) 3 x_3=(size)^3 x3=(size)3

另外还要注意,由于特征涉及指数运算的,因此特征缩放就显得尤其重要,在梯度下降算法中需要保持特征范围在可接受的范围内。

在这里插入图片描述
初三次之外, h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_θ(x)=θ_0+θ_1x_1+θ_2\sqrt{x_2} hθ(x)=θ0+θ1x1+θ2x2 也是一种不错的假设函数,
在选择拟合的假设函数的过程中,通过对图像的理解选择更好的假设函数有助于我们拟合的效率


正规方程

在这里插入图片描述在梯度下降那一章中,我们讲到了局部最小值 θ θ θ所在的点其实就是这个邻域内的驻点,因此要求出这个点只需对代价函数 J ( θ ) J(θ) J(θ) θ j θ_j θj的偏导,并使其 = 0 =0 =0再解出即可,如果你学习了微积分相关知识就能理解。

也就是说梯度下降未必需要完全迭代才能得到这个 θ θ θ的值,事实上我们完全可以通过计算把它先算出来。

在这里插入图片描述
现在我们有一个四个特征的训练集,想要得出使代价函数最小的 θ θ θ,我们当然也能通过计算得出。
首先别忘了加上常数项 x 0 = 1 x_0=1 x0=1
在这里插入图片描述

我们用所有的特征 x j x_j xj来构建一个特征矩阵 X X X,矩阵 X X X包含了所有训练样本中的所有特征
其中, x ( 1 ) = [ 1 2104 5 1 45 ] x^{(1)}=\begin{bmatrix} 1 \\ 2104 \\ 5 \\ 1 \\ 45 \end{bmatrix} x(1)= 121045145 x ( i ) = [ x 0 ( i ) x 1 ( i ) x 2 ( i ) x 3 ( i ) x 4 ( i ) ] x^{(i)}=\begin{bmatrix} x^{(i)}_0 \\ x^{(i)}_1 \\ x^{(i)}_2 \\ x^{(i)}_3 \\ x^{(i)}_4 \end{bmatrix} x(i)= x0(i)x1(i)x2(i)x3(i)x4(i)
最终得到的矩阵 X = [ x 0 ( 1 ) x 1 ( 1 ) x 2 ( 1 ) x 3 ( 1 ) x 4 ( 1 ) x 0 ( 2 ) x 1 ( 2 ) x 2 ( 2 ) x 3 ( 2 ) x 4 ( 2 ) x 0 ( 3 ) x 1 ( 3 ) x 2 ( 3 ) x 3 ( 3 ) x 4 ( 3 ) x 0 ( 4 ) x 1 ( 4 ) x 2 ( 4 ) x 3 ( 4 ) x 4 ( 4 ) ] X=\begin{bmatrix} x^{(1)}_0 & x^{(1)}_1 &x^{(1)}_2 &x^{(1)}_3 &x^{(1)}_4\\ x^{(2)}_0 & x^{(2)}_1 &x^{(2)}_2 &x^{(2)}_3 &x^{(2)}_4\\ x^{(3)}_0 & x^{(3)}_1 &x^{(3)}_2 &x^{(3)}_3 &x^{(3)}_4 \\ x^{(4)}_0 & x^{(4)}_1 &x^{(4)}_2 &x^{(4)}_3 &x^{(4)}_4 \\ \end{bmatrix} X= x0(1)x0(2)x0(3)x0(4)x1(1)x1(2)x1(3)x1(4)x2(1)x2(2)x2(3)x2(4)x3(1)x3(2)x3(3)x3(4)x4(1)x4(2)x4(3)x4(4)
同样地,我们将所有结果样本构建矩阵 y y y
也就是说,我们可以用两个矩阵 X y Xy Xy的关系来表示出所要求的 θ θ θ

最小二乘估计

最小二乘估计公式如下:
θ = ( X T X ) − 1 X T y θ=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
以下是二乘估计公式的证明过程:
y = X ⋅ θ y=X\cdotθ y=Xθ
首先运用求驻点的公式,我们需要求出满足所有偏导都为0的矩阵 θ θ θ,
{ ∂ J ( θ ) ∂ θ 1 = 0 ∂ J ( θ ) ∂ θ 2 = 0   . . . . . . ∂ J ( θ ) ∂ θ n = 0 \begin{cases} \frac{∂J(θ)}{∂θ_1}=0 \\ \frac{∂J(θ)}{∂θ_2}=0 \\ \ ...... \\ \frac{∂J(θ)}{∂θ_n}=0 \end{cases} θ1J(θ)=0θ2J(θ)=0 ......θnJ(θ)=0 分别解出所有 θ θ θ值,得到矩阵 θ = [ θ 1 θ 2 . . . θ n ] θ=\begin{bmatrix} θ_1 \\ θ_2 \\ ... \\ θ_n \end{bmatrix} θ= θ1θ2...θn
最小二乘法的原理是通过最小化误差(真实目标对象与拟合目标对象的差)的平方和,还记得这张图吗?
在这里插入图片描述
我们希望所有点 y y y到拟合曲线的距离之平方和最小,让我们用向量语言重新描述一下这张图:
在这里插入图片描述
如果用向量语言来讲,我们看一下(1,1)这个点,我们将红色向量称为向量a,紫色向量称为向量b,蓝色向量称为向量c,那么很明显 ∥ c ∥ = ∥ a − b ∥ \lVert c\rVert=\lVert a-b\rVert c=ab
因此,求最小化误差的平方和,就是使得所有蓝色向量的欧几里得范数之平方和最小,并且每一个蓝色向量都可以表示为两个向量之差,而下方的红色向量,其实就是我们确定的拟合曲线 y = X ⋅ θ y=X\cdotθ y=Xθ,而上方紫色向量就是 y y y,因此,最小二乘法可以化为:
S = ∥ X ⋅ θ − y ∥ 2 S=\lVert X\cdotθ-y\rVert_2 S=Xθy2
证明过程参考Ordinary Least Square(OLS) 普通最小二乘
最终得到公式 θ = ( X T X ) − 1 X T y θ=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
通过这个公式,我们可以直接计算出 θ θ θ的值


比较梯度下降和正规方程

学习了这两种方法,我们来比较一下二者的优缺点:

梯度下降正规方程
优点1.当特征数量n较大时工作效率高1.不需要选择学习率
2.不需要迭代
缺点1.需要选择适当的学习率
2.需要多次迭代,同时要保证特征缩放
1.需要求解 ( X T X ) − 1 (X^TX)^{-1} (XTX)1,而该式求解的时间复杂度是 O ( n 3 ) O(n^3) O(n3)
2.如果特征数量n较大时工作效率低

所以选择哪个方法由特征数量决定,当特征数量小于10000时,我们可以使用正规方程,当特征数量大于10000时最好使用梯度下降法。
另外 ( X T X ) (X^TX) (XTX)可能会出现不存在逆矩阵的情况,但是在计算机中并不影响计算。


下一章——逻辑回归

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值