首先我们应该了解一下多元线性回归。相比于单变量线性回归,该函数拥有多个变量值,那么他所拥有的参数就不仅仅是一个或者两个,而是多个。例如下面这个函数:
如果把该函数的参数 θ 和变量 x 全部写成向量的形式,就可以简化成下面这个函数:
如果你想预测房价,现在有两个变量 x1 和 x2 来控制房子的价格。 x1 为房子的大小,范围在 0 到 2000,x2 为房子中卧室的数目,范围在 0 到 5,那么画出这个代价函数的轮廓图就是这个样子,一个扁扁的椭圆形。
对这个函数进行梯度下降,就是红线的过程,你会发现,这个路程很长很曲折,这样我们进行梯度下降所花费的时间就会很长。那么我们应该怎样来缩短这个时间呢?先从这个图来下手。你看这个图,麻麻赖赖的,一点都不圆润,怎么办?盘它!(手动狗头)
给它变成这个样子不就好办了吗。怎么盘?肯定不能用手盘呀,这里就要用到特征缩放(Feature Scaling)。将变量 x1 和 x2 都缩放到一个范围中,我们将他们都缩放到 -1 到 1 这个范围内。最简单的方法就是将 x1 除以 2000(因为他的范围就是 0-2000), x2 除以 5。现在变量 x1 和 x2 的范围全部都在 -1 到 1 这个区间了,但是又出现一个问题,你发没发现,现在经过处理之后的数据全是正值,不分散,那么我们就要用稍微复杂一点的方法进行特征缩放。用均值归一化(Mean normalization)的方法处理数据:
其中 μn 为平均值,Sn 为标准差,也可以用这个变量最大值与最小值的差。现在你就会发现,数据既有正值也有负值,分散在-1 到 1 这个区间,进行梯度下降就很快啦。
领取专属 10元无门槛券
私享最新 技术干货