机器学习笔记(4)多元线性回归

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/

之前我们讨论的线性表示方法存在缺点,就是不够简洁以及无法表示多个特征值。因此我们引入多元线性回归的概念

在写正式的笔记之前,我们需要约定一些经常会用到的表示方法:

(之前用m来表示样本的数量)

例如下面的数据

这样就将一行数据进行了向量化,或许现在还看不出来向量化的优势在哪里。

现在我们将之前的假设函数扩充到多参数形式这样就可以拥有多个特征量,设x0=1,假设函数就变成了,接下来我用矩阵的方式表示x和θ。。利用x和θ两个向量改写后的假设函数是,这里可以很简单的证明改写前和改写后是等价的(需要使用线性代数的知识)

既然我们理解了什么是多元的假设函数以及如何用矩阵乘法的形式来表示多参数的假设函数,接下来的一个重要的任务就是和以前一样:我们需要找到满足这个假设θ向量,这里我们使用前一篇笔记中提到的梯度下降方法

在这里代价函数就变成了而假设函数是上面提到的,正如上面所说,我们已经把θ进行了向量化,所以公式就变成了,将所得带入梯度下降算法公式,得到,求解该式(j=1,2,3…n)

既然知道了梯度下降算法如何与多元线性回归相结合,那么接下来我们就可以开始实际应用了

引用课程中的一个例子,假设我们有两个参数一个参数为房屋的尺寸(0-2000英尺),另一个参数为房间的数量(1-5),以θ0和θ1为x,y轴做图像我们可以得到类似这样的图像,当我们对这样的数据运行梯度下降算法时,整个梯度下降算法就会像这样运行,这样会使运行速度和运行效率大打折扣,如果我们的数据跨度更大,图形就会变得更加细长,梯度下降算法的效率就会更低。为了解决这个问题我们需要采用特征缩放(Feature Scaling),就本例来说,如果将两个坐标轴进行特征缩放处理,就可以保证图像变成这样,对于梯度下降方法来说效率也会变高。也就是说我们通过特征缩放消耗掉了多余的范围,换取了梯度下降方法的效率

我们使用特征缩放方法,需要尽量将缩放后的特征值确定在一个比较合适的范围(不要太小,像0.0001;也不要太大,像1000)

当然有时候我们也会进行一个叫均值归一化(Mean normalization)的具体操作方法。,其中μ为平均值,s为标准差(这里简单的可以讲s理解为数值的范围,也就是最大值减去最小值,因为这里只是为了让梯度下降方法运行的更快,因此不必纠结这里使用的分母是标准差还是范围)。通过均值归一化我们就有了一个科学的特征缩放的方法

掌握了特征缩放后,我们就可以使用优化后的梯度下降方法。问题是如何在多参数的情况下判断梯度下降是否达到收敛

我们可以以迭代次次数为x轴,得出的J(θ)的值为y轴绘制一幅图像,从图像中可以看出当执行300次以上的迭代后J(θ)的值几乎不下降,就可以说明在这里J(θ)达到了收敛,现在我们要让计算机来自动完成这个步骤。这个其实很简单,只需要检测代价函数的变化量是否满足某个条件,如果小于某一个阈值就可以说代价函数已经收敛。不过使用这个方法的前提是我们需要选择一个合适的α,避免越过局部最优解而导致完全无法收敛。用样我们也可以利用上面的方法来验证是否超过局部最优解导致无法收敛。通常我们可以选择α=0.01 0.03 0.1 0.3 1 3 10这几个值

最后再来谈一下特征和多项式回归

在前面谈梯度下降的那一片笔记以及前面的代价函数的笔记中,我们是用的都是单一特征的假设函数,假设我们现在已经将部分数据录入到下图,我们需要设计一个方程来拟合这些直线,显然直线是无法对这些点进行一个很好的拟合,既然如此那么可能就会想到二次函数,但二次函数后面会有下降的趋势,因此也不适合。所以在这里我们就需要选择一个三次函数来拟合数据

这就会产生一个问题,以为我们的假设函数是θ0+θ1×1+θ2×2+θ3×3,这是一个多特征的假设函数,而我们需要一个三次的假设函数,因此我们将第一个特征量x1规定为size,第二个特征量x2规定为size的平方,第三个特征量x3规定为size的三次方,这样我们就用一个size表示了三个特征量

如果我们的size的大小取(1-1000),那么size的三次方就会有10的9次方那么大,所以做好均值归一化是很重要的

当然,假设函数还可以选择别的形式的,并不局限于这几种函数。后面的笔记我们会简述一些其他的算法,可以帮助你选择应该用什么函数和选择什么特征量,现在需要掌握的就是如何选择特征量,以及乳核用复杂的曲线去拟合数据

About the author

NOBUG.IN

Add comment

By NOBUG.IN

Your sidebar area is currently empty. Hurry up and add some widgets.