通过之前的学习,我们知道多变量的线性回归。在这节中,将介绍一些可供选择的特征以及如何得到不同的学习算法。当选择了合适的特征后,这些算法往往是非常有效的。另外还将介绍多项式回归。它使得我们能够使用线性回归的方法来拟合非常复杂的函数,甚至是非线性函数。
下面以预测房价为例。假设有两个特征,分别是房子临街宽度和房子深度(实际上相当于长?)。下面是我们想要卖出的房子的图片。
然后我们就可以建立一个这样的线性回归模型。其中临街宽度是我们的第一个特征x1,纵深是第二个特征x2。但当我们在运用线性回归时,我们不一定非要直接用给出x1和x2作为特征。我们可以自己创造新的特征。因此,如果我要预测房子的价格,我会做的也许是确认真正能够决定房子大小的我拥有的土地的大小。因此,我可能会创造一个新的特征,我称之为x,临街宽度与纵深的乘积(这就是我拥有的土地的面积)。于是,我将hθ(x)=θ0+θ1x 这个式子作为假设,这个式子只用一个特征(我的土地的面积)。有的时候不直接使用给的特征,反而使用自己创造的新的特征,可能会得到一个更好的模型。
与选择特征的想法密切相关的一个概念被称为多项式回归。比方说,有一个这样的住房价格的数据集。
可能会有多个不同的模型用于拟合.直线似乎并不能很好地拟合这些数据,因此你可能会想到用像下面给出的二次模型去拟合。所以,选择之一是二次模型。然后,我们可能得到如下的拟合效果。
但是你可能会觉得二次函数模型不合理。因为一个二次函数最终会降下来,但是,我们并不认为,随着土地面积的增加,价格会下降。因此,我们可能会选择一个不同的多项式模型并转而选择使用一个三次函数。现在我们有了一个三次函数,我们用它进行拟合。也许我们会得到如下的拟合效果。也许这条绿色的线对这个数据集拟合得更好,因为它不会在最后下降。
使用多元线性回归的方法,我们可以对算法做一个简单的修改来实现它。按照我们之前假设的形式,我们知道如何去拟合。就像之前的例子,我们知道hθ(x)=θ0+θ1x1+θ2x2+θ3x3。而现在,如果我们想拟合这个三次函数模型,我们讨论的就是hθ(x)=θ0 + θ1(size) + θ2(size)2 + θ3(size)3。(size表示房子的面积)观察两个式子,我们自然就会想到假设x1=size,x2=(size)2,x3=(size)3。然后再应用线性回归的方法。我们就可以将一个三次函数拟合到数据上面。这里还要再说一件事情:如果像这样选择特征,那么特征缩放就变得更重要了。如果房子的面积取值范围在1-1000,那么房子面积的平方,取值范围就在1-1000000。而第三个特征,房子面积的立方取值范围就在1-100000000。因此,这三个特征的范围有很大的不同。所以如果使用梯度下降法,特征缩放非常重要。这样才能将值的范围变得具有可比性。
最后一个例子将告诉我们其实有很大的余地来选择要是有哪些特征。之前我们谈到这样的二次模型不是最理想的,因为它最后会下降。我们不希望选择房子面积的增加,价格会下降。但是除了转而建立一个三次模型以外,我们也许有其他可选的特征。这里给出另外一个合理的选择的例子,他可能是hθ(x)=θ0 + θ1(size) + θ2(√size)。
然后,我们可能得到一条趋势是上升的,但是慢慢变得平缓的曲线。在这个例子中,凭着对平方根函数图像的了解以及对数据形状的了解,通过选择不同的特征,有时可以得到更好的模型。
在这节中,我们探讨了多项式回归。也就是如何将一个多项式,如一个二次函数或者一个三次函数,拟合到数据上面。我们还讨论了我们可以自己选择使用哪些特征。
但是,有很多时候会有很多不同的特征,而我们该如何决定使用什么特征,也许这似乎有点难以抉择。在后面的课程中,我们将学习一些算法,它们会自动选择要使用什么特征。因此,可以让算法观察给出的数据,并自动为你选择到底应该选择一个二次函数还是一个三次函数还是一个其他的函数。但是在我们学习那种算法之前,我们要知道我们其实可以自由选择使用什么特征,并且通过设计不同的特征我们能够用更复杂的函数拟合数据,而不只是用一条直线去拟合。特别的,你也可以使用多项式函数。有时如果从合适的角度来寻找特征,你就能得到一个更符合的数据的模型。