一、引言——房价预测问题 问题: 假设我们知道一些房价与距离的对应关系,通过这些已知的信息,能否预测在一定范围内任意距离对应的房价?
首先考虑最为简单的情况,也就是只有两个房价信息的情况。 如图所示,1km时对应房价为300,2km 时对应房价为500。很容易可以在这两点间连一条直线,这条直线就可以作为对房价的预测。这样用曲线对已知数据中的关系进行估计的方法称为拟合。
(注意,本文只考虑以一元线性函数进行拟合)
类似的,增加房价信息为三个点,如果三点共线,则该直线依然可以作为对房价的拟合。 但更可能的情况是三点不共线,对于更多的数据的情况则更是如此。这样的话要如何找到一条直线来拟合房价信息呢?
二、损失函数 我们需要找到一种标准来衡量直线对已有信息的拟合程度。
假设当前直线为: $$ y = wx+b $$ 房子距离为 $x^{(1)},x^{(2)},x^{(3)}...,x^{(m)}$,对应的房价为 $y^{(1)},y^{(2)},y^{(3)}...,y^{(m)}$。 则对于每个距离 $x^{(i)}$,当前直线所预测的房价为: $$ \hat{y}^{(i)} = wx^{(i)} + b $$ 该房价与真正的房价的差距为 $$ d = |y^{(i)} - \hat{y}^{(i)}| $$ 绝对值不可导,不妨用平方来代替 $$ d_2 = (y^{(i)} - \hat{y}^{(i)})^2 $$ 对于每个已知的房价信息,当前直线的预测都可能会有偏差,将这些偏差求和得到总的偏差 $$ \sum_{i=1}^{m}(y^{(i)} - \hat{y}^{(i)})^2 $$ 为了排除样本数量不同对偏差的影响,将偏差总和除以样本数量 $$ \frac{1}{m}\sum_{i=1}^{m}(y^{(i)} - \hat{y}^{(i)})^2 $$ 这也就是总体方差的计算式: $$ \sigma^2 = \frac{1}{m}\sum_{i=1}^{m}(y^{(i)} - \hat{y}^{(i)})^2 $$ 对于机器学习,我们将$\hat{y}^{(i)}$展开,并将方差除以2,得到一元线性回归的损失函数(loss function),即 $$ J(w, b) = \frac{1}{2m}\sum_{i=1}^{m}(y^{(i)} - wx^{(i)} - b)^2 $$ 在 $x^{(i)}$,$y^{(i)}$ 确定的情况下,损失函数是关于 $w$ 和 $b$ 的连续可导的二元函数。该函数可以用来衡量 $w,b$ 所确定的直线与已知数据之间的偏差。...