套索正规化

这个例子说明了如何套索识别并丢弃不必要的预测因子。

生成从与各种装置指数分布五维人造数据X的200个样本。

RNG(3,“扭腰”%用于重现X =零(200,5);对于II = 1:5 X(:,ⅱ)= exprnd(II,200,1);结束

生成的响应数据ÿ=X*[R+EPS,其中[R只有两个非零的成分,和噪声EPS是正常的标准偏差0.1。

R = [0; 2; 0; -3; 0];Y = X * R + randn(200,1)* 1;

飞度车型有交叉验证序列套索,并绘制结果。

并[b,fitinfo] =套索(X,Y,'简历',10);lassoPlot(B,fitinfo,'PlotType'“拉姆达”'的XScale'“日志”);

该图表显示了回归的各值非零系数LAMBDA调整参数。值越大LAMBDA出现在曲线图的左侧,这意味着更多的正则化,导致较少的非零回归系数。

垂直虚线表示LAMBDA以最小均方误差(右)值,LAMBDA值最小均方误差加上一个标准差。后面这个值是一个推荐的设置LAMBDA。这些线仅当您执行交叉验证出现。交叉验证通过设置'简历'名称 - 值对的参数。此示例使用10倍交叉验证。

的曲线图显示了自由度(DF)的,这意味着在回归非零系数的数目,作为LAMBDA的函数的上部。在左边,LAMBDA的较大值会导致所有,但一个系数为0,右侧全部五个系数是非零,虽然图中显示只有两个清晰。其他三个系数是如此之小,你不能从视觉0区别开来。

对于较小的值(在图中向右),系数值接近于最小二乘估计。

找出LAMBDA最小的交叉验证均方误差值加1个标准差。检查拟合在该MSE和系数LAMBDA

林= fitinfo.Index1SE;fitinfo.MSE(LAM)
ans = 0.1398
B(:,LAM)
ANS =5×10 1.8855 0 -2.9367 0

套索干得不错找到系数向量[R

为了进行比较,发现最小二乘估计[R

RHAT = X \ÿ
RHAT =5×1-0.0038 1.9952 0.0014 -2.9993 0.0031

估计B(:,LAM)比的均方误差稍微均方误差RHAT

RES = X * RHAT  - ÿ;%计算残差MSEmin = RES' * RES / 200%B(:,LAM)值是0.1398
MSEmin = 0.0088

B(:,LAM)只有两个非零的成分,因此可以提供新的数据更好的预测估计。

也可以看看

||||

相关的话题