`

MLA Review之五:回归

阅读更多

回到回归的正题,回归问题是机器学习领域中应用的比较广的一种方法,不过我觉得大部分的回归模型都是广义线性模型,在Andrew NG的课程中,对广义线性模型做了比较详细的推导,这篇文章的内容是,线性回归、局部加权回归、岭回归以及前向逐步回归,除了前向逐步回归之外,其他的都是广义线性回归模型,基本思路都是 1,确定损失函数 2,使用梯度下降(或者梯度上升)求解权重参数,算是套路,而这两种套路使用Python都比较容易实现,就是使用了矩阵运算,代码量也不大,所以这篇文章就简单说说各种回归,而不实现代码,代码和之前的logistic回归计算过程都是一样的

 

言归正传

 

一、线性回归

 

线性回归方式很简单,公式如下:

 

z=w0+w1*x1+w2*x2+...+wn*xn

损失函数: h=(1/2)*(z-y)^2  其中h是训练数据的真正结果值

方法:梯度下降法

 

二、局部加权回归

 

线性回归有一些问题,就是如果训练数据如果有些数据偏差特别大,这回造成最后训练的模型可能对整体数据都不具备很好的准确性,因此又提出了一种新的回归模型,也就是局部加权回归(LWR),局部加权回归实质上是对于需要预测的点,只是根据其附近的点进行训练,其他的没有改变,只是改变了其损失函数,对于比如对于点P(x0,y0)的预测:

 

z=w0+w1*x1+w2*x2+...+wn*xn

损失函数: h=exp(|x-x0|/(-2k^2)) * (1/2)*(z-y)^2  其中h是训练数据的真正结果值

方法:梯度下降法

 

说道为什么局部加权回归能够达到其效果,可以从损失函数前面加的exp(|x-x0|/(-2k^2)) 函数看出,如果训练数据点距离需要预测的点比较远,那么该值就会趋向于0,那么也就是说,在最后进行梯度下降的时候其对权重的变化就影响很少,相当于可以说,只有预测点周边的训练数据才会对最后的权重产生重要的影响

 

但是其实局部加权回归容易出现过拟合现象,过拟合现象很明显:太关注局部的训练数据,忽略了全局数据,如果预测点在出现偏差的训练数据附近,那么预测值会偏差很大,但是局部加权回归还是对训练数据拟合的比较好,这也是局部加权回归的优点,只是容易出现过拟合现象

 

三、岭回归

 

岭回归着手解决的是训练数据少于预测数据的问题,其实对于之前的回归,有一个前提条件就是矩阵X是列满秩矩阵,如果训练数据比较少,那么就容易出现X是非列满秩矩阵,导致的问题是xTx是一个奇异矩阵,因此需要加入一个单位矩阵进行变换成非奇异矩阵,具体的来说,公式如下:

 

 

z=w0+w1*x1+w2*x2+...+wn*xn

损失函数:

                 其中,I是一个单位矩阵,通常该矩阵会加个lambda参数来调节,单位矩阵I的秩是训练参数的长度

 

方法:梯度下降法

 

 

 

四、前向逐步回归

 

前向逐步回归其实很简单,就是对于初始化的权重,在每一次迭代中,都略微增加或者减少一些值,然后计算整个损失函数的值,如果损失函数变小了的话,就将权重更新,如果没有减小,就继续下一次迭代

 

前向逐步回归其实说白了就是去一步一步尝试,这种方法可能达到局部最优但是很难达到全局最优,看过一些书说是关于凸函数的问题,这点我不太明白,所以就不详述

 

  • 大小: 8 KB
0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics