二、线性回归
实例:房价预测
线性回归
θ0、θ1为线性回归模型参数;
2.1 代价函数
代价函数:Cost Function,又称平方误差代价函数;对偏离真实值的输出给予较大的惩罚,其大小反映了拟合函数的精准度,值越小,精准度越高,误差越小;
最小化问题:目的是找到合适的θ0、θ1,使得 hθ(x) 和 y 之间的差异小,即尽量较少假设的输出(估计值)与房子真实价格(真实值)之间的差的平方;
简化版的线性回归:
θ0=0,保留θ1这一个参数;
假设θ1=1时:
假设θ1=0.5时:
假设θ1=0时:
~~~~~~ 简化参数后,很容易看出:代价函数值越小,其对应的θ1所确定的直线就越接近原曲线,拟合程度就越高;
Q:那么回到两个参数的线性回归中,又该如何确定?
两个模型参数,则可能得到以下代价函数取值图形:
因为两个θ才能确定一个代价,不过和一个参数一样,它们都是碗状的;
将3D图转化为等高线图展示:
~~~~~~
位于同一等高线的两点有着相同的代价函数值;想象这是一个碗,碗的底部就是这些椭圆的中心,由底部开始生长出碗,越外围,代价函数值越大;
~~~~~~ 左边的图为 (800,-0.15) 对应的拟合直线,它并没有很好地拟合直线,因为它的代价函数值很大,距离碗底还很远;
~~~~~~ 反观我们的目的就是设计出这样一种算法,它能够自动找出代价函数的最低点,那么就能得到θ0和θ1,从而确定拟合程度最好的拟合曲线,从而达到预测效果;下面就说如何设计这种算法!
2.2 梯度下降算法
梯度下降:Gradient descent,不仅适用于最小化线性回归中的代价函数J(θ),还适用于其它很多领域,能够最小化很多函数;
~~~~~~
从不同的初始位置下山,找到的却是不同的局部最优解,这是梯度下降的一大特点;
学习率α:即下一步跨的幅度,学习率越大,跨得越大,同样精确度也会随之降低,容易陷入局部最优解;
下面开始解释公式中的 导数项/偏导数:
挺容易理解的,两边都是往谷底靠;
如果α太小,就需要一小步一小步地接近谷底;
如果α太大,就可能越过最低点(代价函数变得更糟),甚至可能无法收敛;
当它已经处在局部最优点时,它会一直保持在这个位置,因为后面导数项为 0,α*0=0;
~~~~~~
梯度下降的方式:越接近最低点,|斜率|越小,导数项也就越小,每次移动的步伐就会变小;所以,无需降低α的值来控制步伐;
不断重复直到收敛;
线性回归的代价函数总是一个弓状函数 – 凸函数 convex function;
它只存在全局最优解,不存在局部最优解的情况;
Batch Gradient Descent:梯度下降的每一步都使用所有的训练样本(全览整个数据集)