问题的引入
我们通过调查得出若干房子的面积大小与其价格的数据,给出一个房子面积的数据,对其房价进行预
问题分析
这个问题是典型的数据挖掘的问题,通过对数据的分析得出规律,然后利用规律对一些未知的数据的结果进行预测,又由于它只有房子面积大小这一个数据特征,所以又叫做一个变量的线性回归问题,问题的解决模型如下图:
问题的解决
根据数据的特征,我们假设模型为:
我们的目标是使得样本数据离我们得出的模型越近越好,所以我们的目标是使得损失函数最小:
公式说明:其实这个公式与方差的定义非常相似,但前面加了一个1/2,原因是为了方便求导。
最后我们的问题简化为:
接下来就是两个参数的确定了,我们采用梯度下降的方法来对模型进行训练。
回想高等数学求极小值的方法,通过对函数求导取极小值,梯度下降也是这个原理,整个过程是:
- 初始化两个参数。
- 通过梯度下降更新两个参数,更新的标准是使得损失函数的值变小。
- 满足我们设定的条件则终止。
这里需要注意的是,两个参数的更新都是用的上一轮训练得到的两个参数。最后得到的效果应该是这样的:
整体理解了这个模型以后,我们探讨一下参数alpha的设置,这个参数是学习率,这个学习率一般很小0.001-0.1,为什么要对这个参数进行设置,已经他的几何意义是什么,首先我们看一下两张图:
学习率较大:
学习率较小:
从上面我们可以看出,在学习率大的时候,参数梯度下降的幅度很大,也就是说模型收敛得很快,但在接近极值点的时候可能错过;而学习率小的时候参数下降的梯度较小,模型收敛的速度慢,但取得的结果一般比较好。基于两种特点,我们可以选择先选择大学习率进行训练,达到一定的迭代次数后动态减少学习率。
过程推导如下:
最后需要在程序实现的过程就是:
更多技术博客:https://vilin.club/