不必时时怀念我,也不要指望我回来,我离开以后,你们就是我,
Vive le peuple!
线性回归是最简单的机器学习模型,是个人都可以学会
一.引例
使用一组俄勒冈州波特兰市的城市住房价格的数据,通过机器学习的方法来预测住房价格
我们的目标是将一个数据集,通过训练算法训练一个函数h(或者说假设),通过输入价格x,能输出对应的预测价格e
注:此例子的预测函数是线性函数
二.代价函数
它有什么用:
代价函数用于计算预测值和实际值之间的误差,它用于和后面的梯度下降函数共同配合找到最优解
这是我们的假设函数h(或者说预测函数)
不同情况下预测函数的图像
线性回归中,最简单的代价函数格式:
一个对公式的直观图像理解(预测函数仅有hθ1):
红色点为数据的实际点,蓝色的点是预测的点,蓝线就是误差
这里附上代价函数和θ1的关系图像
复杂一点的例子(以h=θ1x+θ0为例)
它的代价函数大致是长这样子的:
我的评价是:有点哈人
如果以等高线来看的话是长这样的
红圈标的地方就是代价函数的最小值点
三.梯度下降
思想
这是theta1和theta0关于损失函数的图像,我们的目标是让学习算法从这个图像中找到代价函数的最小值点
图示过程如下
如果出发点不同的话很有可能导致不同的结果
算法实现
梯度下降的公式如下
其中α为学习率,其后面的那坨玩意是代价函数对于某个theta的偏导
理解梯度下降
对于单一变量,它可以照如下方式处理
由图可以理解,α后面那坨东西就是代价函数对于某个theta的偏导,也就是在图像中的斜率
学习度和梯度下降
学习度如果取值不当,则会产生不良结果
学习度过低
不会影响预测结果,但是会增加算法的资源消耗
学习度过低
会让学习过程产生震荡,无法得到最终结果
学习过程怎么终止
对于单个变量
由此图可知,当向最小值移动时,斜率会降低,到最小值点时,斜率为0,学习过程停止
如果每次进行迭代,每次结果的差不超过0.001时,结果收敛