一、示例 —— 预测住房价格
如上图所示,图中的数据集(X)表示房屋大小和价格存在的一个关系图。如果有一个人有一套1250平方尺的房子,那他卖多少钱合适?
二、分析
或许我们每个人心中都有这样一种想法,构造一个函数,房子的尺寸是x,房子的售价是y,则x和y之间会存在一个函数关系式:y=f(x)。当我们把对应的房子的尺寸放进去之后,就能得到对应的房价。
这也是下面这张图,我们用一条曲线线来拟合这些离散的数据点。,在曲线上找房屋尺寸为1250的点,则对应的纵坐标就是该尺寸的价格。
我们把这些数据记录下来,并用字母表示:
根据上面这些数据,我们可以得到如下的图:其中的表示的是通过直线拟合构造形成的函数,(为什么要用直线拟合?因为在尽量保证相似的前提下,直线是最简单的,通过最简单入门)。这种用直线拟合的方式就是线性回归。
三、线性回归
如果想对线性回归有更深的了解,可以先查看百度百科“线性回归”。
四、代价函数引入
对于函数,不同的参数,就会有不同的函数表达式,下面列举的是几类简单情况。
那么对于下面左边的这组数据集来说,θ0和θ1应该取何值时,才能和数据集上的数据尽可能的接近,拟合效果更好呢?假设右面的图是拟合效果最好的,我们要做的就是把这个图对应的参数θ0和θ1找出。
当然,我们不能凭空想象,我们根据人的视觉画一条直线出来,说,他就是最短的,这个很明显是不对的。为了达到真正的接近,我们需要做的就是,用数学的方式,去解决它,通过数学的理性推理,得到的结果,就是我们想要的。而不是我们自认为,随意画的直线。
当然在此之前,我们能发现的是,图像上的所有点不是在同一条直线上的,所以接近程度再高,误差也存在(当然,如果学习一下数值分析,你会知道,不管什么,总是会存在误差,现实世界中基本不可能做到没有误差)。我们需要一个函数来表示我们预测的值和实际的值的误差,从而方便我们计算,误差是否在我们可控范围内,是否会对我们的后续工作造成不好的影响。这个函数就是代价函数(cost function)。
五、代价函数
1.概念
概况来讲,任何能够衡量模型预测出来的值h(θ)与真实值y之间的差异的函数都可以叫做代价函数C(θ),如果有多个样本,则可以将所有代价函数的取值求均值,记做J(θ)。
2.性质
(1)对于每种算法来说,代价函数不是唯一的;
(2)代价函数是参数θ的函数;
(3)总的代价函数J(θ)可以用来评价模型的好坏,代价函数越小说明模型和参数越符合训练样本(x, y);
(4)J(θ)是一个标量;
3.最优参数θ
当我们确定了模型h,后面做的所有事情就是训练模型的参数θ。由于代价函数是用来衡量模型好坏的,我们的目标当然是得到最好的模型(也就是最符合训练样本(x, y)的模型)。因此训练参数的过程就是不断改变θ,从而得到更小的J(θ)的过程。理想情况下,当我们取到代价函数J的最小值时,就得到了最优的参数θ,记为:。
4.第一个代价函数——均方误差
(1)概念
在线性回归中,最常用的是均方误差(Mean squared error),具体形式为:
m:训练样本的个数;
hθ(x):用参数θ和x预测出来的y值;
y:原训练样本中的y值,也就是标准答案
上角标(i):第i个样本
(2)应用
对于上面那个案例,我们希望能得到最优的拟合函数,即误差最小。所以我们可以得到下面的公式:
或者为了更方便理解,写成如下形式:
为了便于理解,我们简化一下图形,并假定θ0 = 0。下面这六幅图分别是:简化数据集分布图,θ1 = 1,θ1 = 0.5,
θ1 = 0,均方误差分布图,均方误差趋势。
如果是在不简化的情况下,就需要构建的是三维坐标了。例如在最开始的数据集中,我们可以构建出如右图一样的图形,并找到最小值。
下图是另外一个拟合直线红色的X依然是左图中蓝色的直线。这个时候的拟合效果就要比上一个好很多了。那什么是最好的呢,在右图中,当红色的X在椭圆中心的时候,拟合效果最好。所以再下面的一幅图的拟合效果相对于前面两个来说就比较不错了。
那,为什么在椭圆的中心会是最小误差,拟合效果最好呢?想让最小,就是让尽可能的趋于0。一种理解方式是,误差大,可能误差的情况就会多,但是误差小的情况就会少,所以对应的θ0和θ1的值就会少,最少的时候,就是最优解,而最少就是在椭圆的中心。