ridge回归(ridge回归和lasso回归)
本篇文章给大家谈谈ridge回归,以及ridge回归和lasso回归对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在matlab中调用b = ridge(y,X,k)进行岭回归分析
- 2、Linear least squares,Lasso,ridge regression有何本质区别
- 3、ridge-regression是什么意思
- 4、matlab,有哪些是线性回归算法!
- 5、正则项浅析
- 6、怎么用SPSS运算岭回归, 用程序的时候老师显示ridgereg 识别不了
在matlab中调用b = ridge(y,X,k)进行岭回归分析
y是因变量的矩阵形式,一般用列向量来表示;X为自变庆尘搜量的矩阵形式,一般用列向量来表示;k为岭回归参数,需要利用誉历程序进行确定。具体代码如下:
%k=0:1e-3:10;
%bb=ridge(y,x,k);
%figure;
%plot(k,bb);
%xlabel('k');
%ylabel('β');
%title('岭迹'兄银);
%legend('x1','x2','x3','x4','x5','x6');
通过岭迹图来确定k值。
Linear least squares,Lasso,ridge regression有何本质区别
Linear least squares,Lasso,ridge regression三者是有本质区别的。
一、最小二乘法(Linear least squares)。
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
二、套索工具(Lasso)算法。
套索工具源于Photoshop,在Photoshop CS6中,需陵宽要自由绘制出形状不规则的选区时,可以使用套索工具。选择使用套索工具后,在图像上拖拽鼠标指针绘制选区边界,松开鼠标左键时,选区将会进行自动闭合。
套索工具算法,通过构造一个惩罚函数获得一个精炼的模型;通过最终确定一些指标的系数为零,套索工具算法实现了指标集合精简的目的。这是一种处理具有复共线性数据的有偏估计。套索工具的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,得到解释力较强的模型。R统计软件顷汪兆的Lars算法的软件包提供了套索工具算法。根据模型改进的需要,数据挖掘工作者可以借助于套索工具算法,利用AIC准则和BIC准则精炼雀租简化统计模型的变量集合,达到降维的目的。因此,套索工具算法是可以应用到数据挖掘中的实用算法。
三、岭回归算法(ridge regression)。
在回归分析中,用一种方法改进回归系数的最小二乘估计后所得的回归称为岭回归算法。
在多元回归方程中,用最小二乘估计求得的回归系数值尽管是其真值β=(β0,β1,···βp)1的无偏估计,但若将与β分别看成p+1维空间中两个点的话,它们之间的平均距离E(—β)1(-β)(称为均方差)仍可能很大,为减小此均方差,用(k)=(X′X+KI)-1X′Y去代替2,称(K)为β的岭回归估计。其中X为各变量的观测值所构成的一个n×(p+1)阶矩阵,Y是随机变量的观测值组成的n维向量,I为p+1阶单位阵,K是与未知参数有关的参数,选择它使E{[(K)-β]1[(K)-β]}达到最小。
ridge-regression是什么意思
linear-ridge-regression
线性回归
regression[英][rɪˈgreʃn][美][rɪ晌烂绝ˈɡrɛʃən]
n.回归; 衰退; (尤指因宴姿催眠或精神疾患历源,或为逃避目前忧虑)回到从前; (统计学) 回归;
复数:regressions
例句:
1.
Separate regression analyses on the u.s. and hong kong data were performed.
对美国和香港的数据进行独立回归分析已经完成。
[img]matlab,有哪些是线性回归算法!
2015a版的matlab有如下猛仔的线形回归算法。
方法名 函数名 说明
1.多元线性回归 fitlm 具有多或敬个预测变量的线性回归
2.逐步回归 stepwise 交互式逐步回归
3多目标的衫知慎多元线性回归 mvregress 使用多变量输出的线性回归
4有正则化的多元线性回归 lasso 使用弹性网正则化的多元线性回归
5有正则化的多元线性回归 ridge Ridge回归
正则项浅析
知识预备:范数
我们经常会听到正则项这个概念,通过查阅资料并且结合自己的理解对正则项做了一个简单的总结,首先,从问题出发:
(1)正则项存在的意义是什么,为什么要使用正则项?正则项是如何防止过拟合的?
(2)有哪几搏帆种正则项,如何表示,它们的相同点和不同点是什么?
(3)不同正则项的使用场景是什么,如何选取正则项呢?
下面就来一一的进行分析吧~~~~
先引入问题 :
就拿斯坦福机器学习课程的例子来说戚枝,通过房子的面积来预测房价,建立回归方程来拟合样本数据
(高银敏一)为什么要使用正则项?
其实正则项是对参数的控制。那么为什么要控制参数呢,控制参数有什么好处呢?
(1)实现参数的稀疏,这样可以简化模型,避免过拟合。在一个模型中重要的特征并不是很多,如果考虑所有的特征都是有作用的,那么就会对训练集进行充分的拟合,导致在测试集的表现并不是很好,所以我们需要稀疏参数,简化模型。
(2)尽可能保证参数小一些,这又是为啥呢?因为越是复杂的模型,它会对所有的样本点进行拟合,如果在这里包含异常的样本,就会在小区间内产生很大的波动,不同于平均水平的高点或者低点,这样的话,会导致其导数很大,我们知道在多项式导数中,只有参数非常大的时候,才会产生较大的导数,所以模型越复杂,参数值也就越大。为了避免这种过度的拟合,需要控制参数值的大小。
(二)正则项的分类
正则项有三种:L0、L1、L2
L0正则化的值是模型参数中非零参数的个数。
L1正则化表示各个参数绝对值之和。
L2正则化标识各个参数的平方的和的开方值。
1、L0正则化
保证参数稀疏化来防止过拟合,可以用非零参数,来进行特征选择。但是L0正则化不好求,因此采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且可以实现稀疏的效果。
2、L1正则化
L1正则化也叫lasso,它往往是替代L0正则化来防止过拟合的。为啥用L1范数,因为L1范数就是各个参数的绝对值相加,我们已知,参数的值的大小和模型的复杂度是成正比的,因此复杂模型,L1范数就会大,导致损失函数大。下面定量的分析:
在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n。如下:
同样计算导数得:
上式中sgn(w)表示w的符号。那么权重w的更新规则为:
现在来观察正则求导项,可知当w为正时,更新后的w变小;当w为负时,更新后的w变大。 因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。 另外,上面没有提到一个问题,当w为0时怎么办?当w等于0时,|w|是不可导的,所以我们只能按照原始的未经正则化的方法去更新w,这就相当于去掉η λ sgn(w)/n这一项,所以我们可以规定sgn(0)=0,这样就把w=0的情况也统一进来了。
3、L2正则化
L2正则化也是防止过拟合的,原因和L1一样一样的,就是形式不同。L2范数是各参数的平方和再求平方根。对于L2的每个元素都很小,但是不会为0,只是接近0,参数越小说明模型越简单,也就越不容易产生过拟合。L2正则化也叫做“岭回归”。
来让我们看看具体的例子,对于房屋价格预测我们可能有上百种特征,与刚刚所讲的多项式例子不同,我们并不知道 哪些是高阶多项式的项。所以,如果我们有一百个特征,我们并不知道如何选择关联度更好的参数,如何缩小参数的数目等等。因此在正则化里,我们要做的事情,就是把减小我们的代价函数(例子中是线性回归的代价函数)所有的参数值,因为我们并不知道是哪一个或哪几个要去缩小。因此,我们需要修改代价函数,在这后面添加一项,就像我们在方括号里的这项。当我们添加一个额外的正则化项的时候,我们收缩了每个参数。
为什么加了一项就让参数尽量小呢,因为只要你想让J最小,那么θ肯定尽可能的去小。
注意:这里我们没有去惩罚 θ0,实践中只会有较小的差异
λ 要做的就是控制惩罚项与均方差之间的平衡关系。
λ越大说明,参数被打压得越厉害,θ值也就越小
现在进行定量的分析:
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:
在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1-ηλ/n ,因为η、λ、n都是正的,在样本量充足的时候,1-ηλ/n小于1,它的效果是减小w,这也就是权重衰减的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。
(三)lasso回归和ridge回归
下面我们来看两个对比图
(1)lasso
注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|,对于梯度下降法,求解J的过程可以画出等值线,同时L1正则化的函数L也可以在w1w2的二维平面上画出来。如下图:
在图中,当J等值线与L首次相交的地方就是最优解。上图中J与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多突出的角(二维情况下四个,多维情况下更多),J与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
(2)ridge
同理,假设有如下带L2正则化的损失函数,同样可以画出他们在二维平面上的图形,如下:
图2 L2正则化二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。
总结 :L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。
参考文章:
怎么用SPSS运算岭回归, 用程序的时候老师显示ridgereg 识别不了
岭回归可以下载相关模块,也可以自己编程来实现。大部分人都会选择后一种方法。这个主要是因为代码很简洁,很容易编写。代码如下:
INCLUDE’d:\spss20.0\Ridge Regression.sps’.
Ridgereg enter=X1 X2 X3
/dep=y
诺,就这么三行。第一行单引号里边填写你的spss安装目录。比如我的按在d盘下面,所以我就填d:\spss20.0,如果你的按在c盘,那就填C盘呗。然后目录后边那个ridge regression,是最小二乘平方的宏的调用。然后第二行X1,X2,X3的位置填写你的自变量的名字。有几个就填几个。中间用空格隔开。第三行y的位置填你的因变量。运行的袭指时候,打开文件——新建——语法,进入语法编辑器窗口,输入上边的代码,然后点运行——全部就可以了。结果会有一个系数表,这个表的第一列是K值,第二列是决定系数,第三列往后是你的自变量。其中k值会从0开始增大,同时决定系数也会慢慢变小,最终趋于稳定。(岭回归舍弃了一定的信息,从而改善了多重共线性)要从这张表里边选取合适的k值,使决定系数尽量大,同时尽量稳戚禅行定。选好k值就可以参照高哗系数写出方程了。此外在岭回归里边是不会输出常数的。这也是和一般回归方法的一个不同之处。
关于ridge回归和ridge回归和lasso回归的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。