套索或线性模型弹力网正规化
回报拟合最小二乘回归系数的线性模型的预测数据B
=套索(<一个href="#d120e431026" class="intrnllnk">X,<一个href="#d120e431050" class="intrnllnk">
y)
λ。默认情况下,
配合正规化与由一个或多个名称值对参数中指定的附加选项消退。例如,B
=套索(<一个href="#d120e431026" class="intrnllnk">X,<一个href="#d120e431050" class="intrnllnk">
y,<一个href="#namevaluepairarguments" class="intrnllnk">
名称,值)
(<一个href="#d120e432051" class="intrnllnk">
也返回结构B,<一个href="#d120e432100" class="intrnllnk">
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)保持离
构建具有冗余预测的数据集,并通过使用鉴定那些预测交叉验证
gydF4y2Ba创建一个矩阵
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(乙(:,idxLambdaMinMSE) - = 0)
minMSEModelPredictors =1x2的细胞{ '×2'} { 'X4'}
在最小MSE的一个标准误差内显示最稀疏模型中的变量。
idxLambda1SE = FitInfo.Index1SE;sparseModelPredictors = FitInfo.PredictorNames(B(:,idxLambda1SE)〜= 0)
sparseModelPredictors =1x2的细胞{ '×2'} { 'X4'}
在这个例子中,
目测检查各级正规化的交叉验证错误。
gydF4y2Ba加载样本数据。
负载乙炔
创建交互的设计矩阵,并没有常数项。
X = [X1 X2 X3的];d = x2fx(X,“互动” );d(:,1)= [];%无常数项
构建使用套索配合10倍交叉验证。包括
RNG默认 %用于重现[B,FitInfo] =套索(d,Y,“简历” 10);
剧情交叉验证配合。
lassoPlot(B,FitInfo,'PlotType' ,“简历” );传说(“显示” )%显示图例
绿色的圆圈和虚线定位
使用。预测学生的考试成绩
gydF4y2Ba加载
负载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);
利用十倍交叉验证法和弹性网法找出正则化线性回归模型的系数
[B,FitInfo] =套索(XTrain,yTrain,'Α' ,0.75,“简历” 10);idxLambda1SE = FitInfo.Index1SE;系数= B (:, idxLambda1SE);coef0 = FitInfo.Intercept (idxLambda1SE);
预测测试数据的考试分数。比较的预测值使用的基准线实际考试等级。
yhat = XTEST * COEF + coef0;保持上 yhat散射(欧美)情节(欧美,欧美)包含(“实际的考试成绩” )ylabel(“预测考试成绩” )保持离
[1] Tibshirani,R.“回归收缩和选择通过套索”。
[2]邹,H.,和T.黑斯蒂。“正则化并经由弹性网变量选择”。
[3]弗里德曼,J.,R. Tibshirani,和T.黑斯蒂。“转正路径,通过广义线性模型坐标下降。”https://www.jstatsoft.org/v33/i01
[4] Hastie的,T.,R. Tibshirani,和J.弗里德曼。
《利用乘子交替方向法的分布式优化和统计学习》。
欲了解更多信息,请参阅<一个href="//www.tianjin-qmedu.com/help/matlab/tall-arrays.html" class="a">高大的数组一个>(MATLAB)。
要并行运行,请设置
gydF4y2Ba设置
gydF4y2Ba例如:
有关更多信息,请参见
gydF4y2Ba有关并行计算的更多一般信息,请参见<一个href="//www.tianjin-qmedu.com/help/parallel-computing/run-matlab-functions-with-automatic-parallel-support.html" class="a">运行MATLAB与自动并行支持功能万博1manbetx一个>(并行计算工具箱)。