线性回归(Linear Regression)
1.什么是线性回归?
举个例子说明:
预测房价,我们现在拥有某个城市的住房价格和每个房子的占地面积。现在你拥有一套1250平米的房子,请你预测这个房子可以卖多少钱?你可以做一条直线来构建你的模型,如图:
从图中的模型你可以看出,你可以以大约220K卖出这套房子。
so,回归问题就是预测问题,根据之前的数据集预测出一个输出值。额外说明一点一个变量的,比如上面这个例子只有房子尺寸这一个变量,这类叫做一元线性回归。同理当你发现一个变量无法很好的构建模型时,便需要使用多元线性回归,即有多个变量。
2.线性回归模型怎么表示?
一种可能的表示方法是: hθ(x)=θ0+θ1x 。我们从公式上看变量只有一个,因此也叫一元线性回归。下面对上述公式的说明。
- h代表(hypothesis),它代表一个函数,在上例子中类似: f(房子尺寸)=房子价格 ,我们的算法就是要来学习这个h,也就是学习其中的 θ0 和 θ1 。而它的下表则表示它是以 θ 为参数的假设。
- x在该例子中就是房子的尺寸。
到现在为止可能大家还是有点懵,有以下俩个问题:
- 我的数据有俩类,一个x(房子尺寸),另一个则是y(房子价格),为什么在上述的模型假设中只出现了x,没有出现y呢?
- 假设函数的参数 θ 是怎么学习的?
别急下面就来说明。
3.代价函数(Cost Function)
初看代价函数时,我也是不知所谓。但其实它很简单就是用来评价模型准确性的一个函数,说的更直白点就是预测结果和实际结果的差值(PS:这里的差值是一个广义的,不仅仅限于平方差)。代价函数的值越小则说明模型拟合的效果越好(PS:请思考一下,是不是代价函数的结果越小越好?)。现在我们就要来构建这一个代价函数。
根据刚刚的定义我们可以列出如下代价函数:
公式解释:
- 平方项是因为要避免正负号抵消问题。
- 12m 是历史习惯,实际上要和不要对计算结果不大。
从代价函数的公式可以看出,预测的结果取决于 hθ(x) ,因此不同的 hθ(x) 的代价函数结果也不一样,为了使代价函数结果最小就等价于寻找合适的参数 θ 使误差最小。
3.怎么学习参数 θ ?
我们使用梯度下降算法来进行求解。在说明算法之前,让我们再来理解一下代价函数
求解代价函数的最小值,其实相当于在下图中找到最低点。
θj=θj−α∂∂θjJ(θ)