机器学习笔记(2)-----单变量线性回归之代价函数

线性回归:

机器学习笔记(2)-----单变量线性回归之代价函数

表达形式为y = w'x+e,e为误差服从均值为0的正态分布。

线性回归可以分为单变量线性回归(Linear Regression with One Variable)以及多变量线性回归(Linear Regression with Multiple Variables)。在此主要了解单变量线性回归。

以ng课程的房屋交易问题为例: 

假设给定一批已知的房子大小和价格的对应关系数据,如何对一个给定大小的房子进行估值?

假使我们回归问题的训练集(Training Set) 如下表所示:

                                                                  机器学习笔记(2)-----单变量线性回归之代价函数 

我们用来描述这个回归问题的标记如下:

                                                   机器学习笔记(2)-----单变量线性回归之代价函数

关键是找到假设函数,怎样找到假设函数呢?

对于处理单变量线性回归的重要几点:

假设函数:数据呈线性分布

                                           机器学习笔记(2)-----单变量线性回归之代价函数

参数:进行参数拟合

                                                  机器学习笔记(2)-----单变量线性回归之代价函数

代价函数:用于进行参数选择(即拟合),最常用的是最小均方误差

                                  机器学习笔记(2)-----单变量线性回归之代价函数

最小化参数:将参数回归转化为误差最小化的优化问题,

                                               机器学习笔记(2)-----单变量线性回归之代价函数

下面详细讲述一下代价函数,代价函数在线性回归中至关重要。

代价函数:

个人理解 代价函数是用于寻找最优解(假设函数)的目标函数,代价函数也正是用来做这件事的。

代价函数的作用原理:

求代价函数的最优解,常用均方误差代价函数。

对于假设函数:

                                      机器学习笔记(2)-----单变量线性回归之代价函数

它的两个参数机器学习笔记(2)-----单变量线性回归之代价函数的改变也会导致假设函数的变化

机器学习笔记(2)-----单变量线性回归之代价函数

然而实际应用中,我们一般会把拿到的数据一线性回归函数的形式展示,如下,就需要我们找到最佳的拟合直线

                                                     机器学习笔记(2)-----单变量线性回归之代价函数

我们先以单一参数为例,令O0的值为0,便可以得到一条如下直线:

机器学习笔记(2)-----单变量线性回归之代价函数 

或者

 机器学习笔记(2)-----单变量线性回归之代价函数

为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。这样,就产生了代价函数: 
                                机器学习笔记(2)-----单变量线性回归之代价函数

采用代价函数找到在图上的点:

机器学习笔记(2)-----单变量线性回归之代价函数

继续找点:

机器学习笔记(2)-----单变量线性回归之代价函数

 

机器学习笔记(2)-----单变量线性回归之代价函数

最后会得到一个大致的由代价函数得到的可视化图像:

机器学习笔记(2)-----单变量线性回归之代价函数

可以看到J(O_i)的最小值为J(O_1),J(O_1)为最小值对应于左边假设函数拟合度最好的函数图线。【O表示theta,下同】

不难发现J(O_1)对应左边绿色的线,J(O_0.5)对应左边品红色的线,J(O_0)对应左边蓝色的线。

如果更多参数的话,就会更为复杂,两个参数的时候就已经是三维图像了: 

机器学习笔记(2)-----单变量线性回归之代价函数

使用等高线图表示:

下图中椭圆线上均有相等的高度值,也即是说 如果O_1,O_2,O_3在统一椭圆上 则J(O_1)=J(O_2)=J(O_3)。

机器学习笔记(2)-----单变量线性回归之代价函数

机器学习笔记(2)-----单变量线性回归之代价函数

上面的一些参数是我们大致用眼睛看到的,并不一定是最优解。而怎样找到最适合的参数O_1,O_2呢,这就要用到一些算法了。

比较合适的当属 梯度下降算法,不在此进行总结记录。