3.6 实验:梯度下降法[8-9]
3.6.1 实验目的
(1)掌握Pandas、SciPy、Matplotlib、Sklearn等模块的使用。
(2)掌握Python自定义函数。
(3)掌握梯度下降法,为理解神经网络打基础。
(4)运行程序,看到结果。
3.6.2 实验要求
(1)了解Python常用程序包的使用。
(2)了解Python数组的使用。
(3)理解迭代计算相关的源码。
(4)用代码实现梯度下降法。
3.6.3 实验原理
多元线性回归是利用线性回归方程的最小平方函数对多个自变量和因变量之间的关系进行建模的一种回归分析。线性回归方程中因变量和自变量之间是线性关系。
已知数据集,而
有
共m个自变量,设线性回归方程为

其中,,后面出现的
也包含
。为了得到目标线性方程,只需要确定方程中的系数
。同时,为了评估所选定的系数
的效果,通常情况下,使用一个损失函数来评估
函数的好坏,本实验采用均方误差来表示:

(3-10)
求式(3-10)的极小值的方法主要有两种:最小二乘法和梯度下降法。其中,梯度下降法是一种迭代方法,其利用梯度调整,使得
取的值越来越小。其更新公式为

(3-11)
其中,为学习率。
下面将构造数据,采用梯度下降法迭代计算,并进行预测。
3.6.4 实验步骤
1.构造数据
令,
在0~9均匀采样,
在4~13均匀采样,并生成相应的
值。具体程序如下:

2.梯度下降法
使用梯度下降法迭代计算的程序如下:



3.预测

4.主函数

3.6.5 实验结果
程序运行结果如下:

迭代次数与损失精度的关系如图3-9所示。

图3-9 迭代次数与损失精度的关系