一、线性回归Linear regression
下图为单变量线性回归算法,X是训练集的数据点,f(x)是模型
二、代价函数Cost function
以线性回归算法为例,输入一组数据训练集(x,y),训练出模型,预测输入x对应的输出值。预测的输出值和实际输出值会存在误差,因此用Cost function来表示此种误差
三、常用符号含义
- m:训练集的数据个数
- (x^i,y^i )=(训练集的第i个输入,训练集的第i个实际输出)
- x:输入
- y:实际输出
- :预测输出
- f:模型
四、平均平方误差代价函数
平均平方误差代价函数是线性回归常用的代价函数。训练集一共m个数据,计算每个数据的预测输出和实际输出的误差平方,求和后再除以m,再除以2,如下所示:
引入【除以2】的主要目的是为了在求导数的过程中,当计算平方误差对模型参数的梯度时,能够消除2的系数,使得计算更加简洁。(具体原理见“梯度下降”)
五、代价函数可视化
选取多组w,b,计算该w,b下的代价函数值J。把w,b,J画图,可以看到代价函数J随w,b的变化呈三维的碗状。
这个三维图可以用类似等高线的方式,转化为等值线,每一个圈代表J值相同,最中心的点代表J值最小,如下图所示。
六、代价函数可视化实践
1、工具:Jupyter Lab
2、官网:https://jupyter.org/
3、步骤
(1)安装:pip install jupyterlab
(2)添加环境变量:pip show jupyterlab获取jupyterlab安装路径,path=安装路径/../Scripts,path下有jupyter-lab.exe,把该path添加到环境变量
(3)安装交互式插件:pip install jupyterlab_widgets,安装此插件后,代码里插入:%matplotlib widget,代码生成的图片会变成交互式的,即可选取图片的点、选择图片。
(4)启动:命令行跳转至jupyter可执行文件目录下,命令行执行jupyter-lab
(5)运行代码:选择代码块,Shift+Enter运行该代码块。(踩坑记录:一个文件里有多个相互依赖的代码块时,需要顺序执行依赖的代码块,因为每个代码块相当于一个独立脚本,使用的是同一份存储空间)
以下是线性回归模型和代价函数的运行结果:
学习来源:B站吴恩达机器学习:3.1-3.6节