我们用最简单的高中数学的知识来解释linear regression。
抛出一个问题,现在有一堆数据是每个人的身价(x)和每个人的富裕程度(y),要求你用函数(h)来描述这两者的关系。
为了为了直观,我们直接把它放在x-y图上。中间的条线就是我们要找的函数。
找出来这个函数,就要找一条现实的最好的拟合这一堆点。
那么,什么叫做“最好的拟合”?
从图上来说,就是已经给定的点到你做出的直线的垂直距离(y的差距)最小。
如果是一个点,那么我们想要距离最小,直接经过就好了。但是现在我有一堆点!这时候要让步,要让所有的点到直线的垂直距离的和最小。
怎么找呢?
把文字换成数学公式,我们的目标:
上方函数被叫做Cost function,N是x的数量。我们总是假设cost function是一个碗形状的有最低点的函数图(此情况也确实如此)。
高中的时候我们学过可以用导数,设h(θ)=θx,然后进而求出距离D(θ),然后求导求导数为0求最小值,进而直接求出θ。数学方法当然可以做得出来,但是现在我们用工程数学的方法——梯度下降——来做。
,
带入上方代价函数之后,
.
其中xi身价,yi是富裕程度,α是学习率,由人指定。
为什么这个能够行?我们可以话cost function和θ的关系图,直观上,带入几个点看看。先随便取θ,就假设是0.。如果点在最低点的左边,那么此时斜率就是负的,θ减负值,θ增大,就离最低点更近;若在最低点右边,那么此时斜率就是正的,θ减正值,θ减小,还是离最低点更近。
最终θ会跑到最低点,这个时候就出结果了。
得到θ,那么直线也就确定了,那么就做出了“最佳拟合”的直线。
得到h后,就可以用这个函数通过新的x来预测新的y了。