套索或线性模型弹力网正规化
返回配最小二乘回归系数预测器数据的线性模型乙
=套索(<一个href="//www.tatmou.com/au/help/stats/#d120e431026" class="intrnllnk">X
,<一个href="//www.tatmou.com/au/help/stats/#d120e431050" class="intrnllnk">ÿ
)X
和响应ÿ
。的每一列乙
对应于在一个特定的正则化系数<一个href="//www.tatmou.com/au/help/stats/#d120e431402" class="intrnllnk">LAMBDA
。默认,套索
使用的几何序列进行正则化套索LAMBDA
值。
配合正规化与由一个或多个名称值对参数中指定的附加选项消退。例如,乙
=套索(<一个href="//www.tatmou.com/au/help/stats/#d120e431026" class="intrnllnk">X
,<一个href="//www.tatmou.com/au/help/stats/#d120e431050" class="intrnllnk">ÿ
,<一个href="//www.tatmou.com/au/help/stats/#namevaluepairarguments" class="intrnllnk">名称,值
)'阿尔法',0.5
设置弹性网作为正则化方法,用参数Α
等于0.5。
[<一个href="//www.tatmou.com/au/help/stats/#d120e432051" class="intrnllnk">
也返回结构乙
,<一个href="//www.tatmou.com/au/help/stats/#d120e432100" class="intrnllnk">FitInfo
] =套索(FitInfo
,其中包含有关模型的拟合信息,使用任意的在前面的语法输入参数。
与X的预测变量和Y响应变量创建采样数据X和Y
RNG('默认' )%用于重现 X =兰特(100,1);Y = 2 * X + randn(100,1)/ 10;
指定一个正规化值,并找到回归模型的系数没有截距项。
波长= 1E-03;B =套索(X,Y,“拉姆达” ,λ,'截距' ,假)
警告:如果“拦截”值是假的,“标准化”的值设置为false。
B = 1.9825
暗算预测值(线)的实际值(点)。
散射(X,Y)保持上 X = 0:0.1:1;图(X,X * B)保持离
构建具有冗余预测的数据集,并通过使用鉴定那些预测交叉验证套索
。
GÿdF4y2Ba创建一个矩阵X
的100五维正常变量。创建响应向量ÿ
从两种成分X
,并添加噪声的量小。
RNG默认 %用于重现X = randn(100,5);权重= [0; 2; 0; -3; 0];%只有两个非零系数 Y = X *权重+ randn(100,1)* 0.1;%增加少量噪音
通过使用构建套索配合10倍交叉验证用标记的预测值变量。
[B,FitInfo] =套索(X,Y,'简历' 10,'PredictorNames' {'X1' ,'X2' ,'X3' ,'X4' ,'X5' });
显示变量模型中的对应于最小交叉验证均方误差(MSE)。
idxLambdaMinMSE = FitInfo.IndexMinMSE;minMSEModelPredictors = FitInfo.PredictorNames(B(:,idxLambdaMinMSE)〜= 0)
minMSEModelPredictors =1x2的细胞 { '×2'} { 'X4'}
显示最小MSE的一个标准误差范围内的稀疏模型中的变量。
idxLambda1SE = FitInfo.Index1SE;sparseModelPredictors = FitInfo.PredictorNames(B(:,idxLambda1SE)〜= 0)
sparseModelPredictors =1x2的细胞 { '×2'} { 'X4'}
在这个例子中,套索
确定了两个模型,并删除冗余的预测相同的预测。
目测检查各级正规化的交叉验证错误。
GÿdF4y2Ba加载样本数据。
加载乙炔
创建交互的设计矩阵,并没有常数项。
X = [X1 X2 X3的];d = x2fx(X,'相互作用' );d(:,1)= [];%没有常数项
构建使用套索配合10倍交叉验证。包括FitInfo
输出这样你就可以绘制出结果。
RNG默认 %用于重现[B,FitInfo] =套索(d,Y,'简历' ,10);
剧情交叉验证配合。
lassoPlot(B,FitInfo,'PlotType' ,'简历' );传说('显示' )%显示图例
绿色的圆圈和虚线定位LAMBDA
以最小的交叉验证误差。的蓝色圆圈和虚线定位具有最小交叉验证误差加上一个标准偏差的点。
预测使用学生的考试成绩套索
和弹性网方法。
GÿdF4y2Ba加载examgrades
数据集。
加载examgrades X =等级(:,1:4);Y =等级(:,5);
拆分数据为训练和测试集。
N =长度(Y);C = cvpartition(N,'坚持' ,0.3);idxTrain =训练(C,1);idxTest =〜idxTrain;XTrain = X(idxTrain,:);yTrain = Y(idxTrain);XTEST = X(idxTest,:);yTest = Y(idxTest);
发现使用正则化的线性回归模型的系数10倍交叉验证和弹性网法Α
= 0.75。使用最大LAMBDA
值,使得均方误差(MSE)为最小MSE的一个标准误差范围内。
[B,FitInfo] =套索(XTrain,yTrain,'Α' ,0.75,'简历' ,10);idxLambda1SE = FitInfo.Index1SE;COEF = B(:,idxLambda1SE);coef0 = FitInfo.Intercept(idxLambda1SE);
预测测试数据的考试分数。比较的预测值使用的基准线实际考试等级。
yhat = XTEST * COEF + coef0;保持上 散射(yTest,yhat)图(yTest,yTest)xlabel(“实际的考试成绩” )ylabel(“预测的考试成绩” )保持离
[1] Tibshirani,R.“回归收缩和选择通过套索”。
[2]邹,H.,和T.黑斯蒂。“正则化并经由弹性网变量选择”。
[3]弗里德曼,J.,R. Tibshirani,和T.黑斯蒂。“转正路径,通过广义线性模型坐标下降。”https://www.jstatsoft.org/v33/i01
[4] Hastie的,T.,R. Tibshirani,和J.弗里德曼。
[5]博伊德,S.的“通过交替方向乘的方法分布式优化和统计学习”。
欲了解更多信息,请参阅<一个href="//www.tatmou.com/au/help/matlab/tall-arrays.html" class="a">高大的数组一个>(MATLAB)。
并行运行,设置'UseParallel'
选项真正
。
GÿdF4y2Ba设置'UseParallel'
选项结构的场真正
运用statset
并指定“选项”
名称 - 值对的参数在调用此函数。
GÿdF4y2Ba例如:'选项',statset( 'UseParallel',真)
欲了解更多信息,请参阅“选项”
名称 - 值对的参数。
GÿdF4y2Ba有关并行计算更一般的信息,请参见<一个href="//www.tatmou.com/au/help/parallel-computing/run-matlab-functions-with-automatic-parallel-support.html" class="a">运行MATLAB与自动并行支持功能金宝app一个>(并行计算工具箱)。