关闭

岭回归原理及代码实现

标签: 岭回归岭回归原理岭回归代码
3053人阅读 评论(2) 收藏 举报
分类:
岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。
对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征。
回归分析中常用的最小二乘法是一种无偏估计。对于一个适定问题,X通常是列满秩的

采用最小二乘法,定义损失函数为残差的平方,最小化损失函数

上述优化问题可以采用梯度下降法进行求解,也可以采用如下公式进行直接求解
                                                                           
当X不是列满秩时,或者某些列之间的线性相关性比较大时,
 
的行列式接近于0,即
 
接近于奇异,上述问题变为一个不适定问题,此时,计算
 
时误差会很大,传统的最小二乘法缺乏稳定性与可靠性。
为了解决上述问题,我们需要将不适定问题转化为适定问题:我们为上述损失函数加上一个正则化项,变为

其中,我们定义
 
于是:

上式中,
 
是单位矩阵。
随着
 
的增大,
  
各元素
  
的绝对值均趋于不断变小,它们相对于正确值
 
的偏差也越来越大。
 
趋于无穷大时,
  
趋于0。其中,
  
  
的改变而变化的轨迹,就称为岭迹。实际计算中可选非常多的k值,做出一个岭迹图,看看这个图在取哪个值的时候变稳定了,那就确定
 
值了。
岭回归是对最小二乘回归的一种补充,它损失了无偏性,来换取高的数值稳定性,从而得到较高的计算精度。
公式推导见下图:


代码实现:
cv::Mat RidgeRegression(cv::Mat D, cv::Mat Y)
{
	float lamda = 0.01;
	cv::Mat tranD = D.t();
	cv::Mat I = cv::Mat::eye(D.cols,D.cols,CV_32F);
	cv::Mat tmp = tranD*D+lamda*I;
	cv::Mat invtmp = tmp.inv(DECOMP_SVD);
	cv::Mat W = invtmp * tranD* Y;

	return W;
}

特别注意:在实际操作中,D的最后一列为全1. 加了1才能有线性表达式y=Ax+b中的b系数。

Reference: 
http://baike.baidu.com/link?url=rRhzRSge3NKyc1as8xnUO4u7JUMcYSTmDKXOZbpWVAnVGk05lU-lz_CFbuF1lD7Ta6JFfpAXPNfL2IwQXmCw3q
4
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ridge regression岭回归

岭回归用于处理下面两类问题: 1.数据点少于变量个数 2.变量间存在共线性 变量间存在共线性是,最小二乘回归得到的系数不稳定,方差很大,这是因为系数矩阵x与它的转置矩阵相乘得到的矩阵不能求逆...
  • swuteresa
  • swuteresa
  • 2013-02-01 13:56
  • 28684

岭回归and逐步线性回归杂记

1.预备知识:对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如...
  • u010680837
  • u010680837
  • 2014-11-28 16:08
  • 1656

简单易学的机器学习算法——岭回归(Ridge Regression)

一、一般线性回归遇到的问题 二、
  • google19890102
  • google19890102
  • 2014-05-27 20:35
  • 52426

Ridge Regression - 岭回归

Why 目的predictors X之间存在严重的多重共线性(multicollinarity, 即自变量之间线性相关-correlation很高)时,会导致p (|predictors|)< n (...
  • majestyhao
  • majestyhao
  • 2015-03-17 01:57
  • 1528

ridge regression岭回归

岭回归用于处理下面两类问题: 1.数据点少于变量个数 2.变量间存在共线性 岭回归的原理 岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法...
  • gaochao1995
  • gaochao1995
  • 2014-12-19 22:22
  • 1552

简单易学的机器学习算法——岭回归(Ridge Regression)

转载地址:http://blog.csdn.net/google19890102/article/details/27228279   一、一般线性回归遇到的问题     在处理复杂的数据的回归问题时...
  • thystar
  • thystar
  • 2014-12-05 00:15
  • 1396

scikit-learn : 岭回归

背景岭回归可以弥补线性回归的不足,它引入了正则化参数来”缩减”相关系数,可以理解为对相关系数做选择。当数据集中存在共线性的时候,岭回归就会有用。让我们加载一个不满秩(low effective ran...
  • SA14023053
  • SA14023053
  • 2016-06-18 22:29
  • 1012

机器学习实战——ch08.1回归之岭回归

1.什么是岭回归?对于一个统计学知识匮乏的工科生,还真得好好补补。通过各种信息检索,终于有了一点理解,同时发现了统计学真的很重要,比如金融、生物(尤基因)等与大量数据相关的领域。 岭回归:是一种专...
  • u011629133
  • u011629133
  • 2016-08-18 15:16
  • 513

岭回归原理及代码实现

岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的...
  • peterchan88
  • peterchan88
  • 2017-09-14 09:59
  • 221

岭回归和lasso回归的r语言代码

setwd("C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业")  #设定当前的工作目录 shuju=read.table("shuju.txt",header=T) ...
  • li603060971
  • li603060971
  • 2015-10-30 11:09
  • 8081
    个人资料
    • 访问:182622次
    • 积分:2760
    • 等级:
    • 排名:第15013名
    • 原创:86篇
    • 转载:6篇
    • 译文:0篇
    • 评论:73条
    文章分类
    最新评论