套索或弹性网正则化的线性模型
回归拟合最小二乘回归系数的线性模型的预测数据B
=套索(<一个href="#d123e503278" class="intrnllnk">X,<一个href="#d123e503302" class="intrnllnk">
y)
λ.默认情况下,
使正则回归具有由一个或多个名称-值对参数指定的附加选项。例如,B
=套索(<一个href="#d123e503278" class="intrnllnk">X,<一个href="#d123e503302" class="intrnllnk">
y,<一个href="#namevaluepairarguments" class="intrnllnk">
名称,值)
[<一个href="#d123e504303" class="intrnllnk">
也返回结构B,<一个href="#d123e504352" class="intrnllnk">
FitInfo) =套索(
用预测变量创建样本数据
rng(“默认” )%的再现性 X =兰德(100 1);y = 2*X + randn(100,1)/10;
指定正则化值,求不含截距项的回归模型的系数。
λ= 1 e 03;B =套索(X, y,“λ” λ,“拦截” 假)
警告:“Intercept”值为false时,“Standardized”值设置为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*weights + randn(100,1)*0.1;%小的添加噪声
使用带有标记的预测变量的10倍交叉验证构建套索适合。
[B, FitInfo] =套索(X, y,“简历” 10“PredictorNames” , {x1的 ,“x2” ,“x3” ,“x4” ,“×5” });
显示模型中与最小交叉验证均方误差(MSE)相对应的变量。
idxLambdaMinMSE = FitInfo.IndexMinMSE;minMSEModelPredictors = FitInfo.PredictorNames (B (:, idxLambdaMinMSE) ~ = 0)
minMSEModelPredictors =1 x2单元格{“x2”}{“x4”}
在最小MSE的一个标准误差内显示最稀疏模型中的变量。
idxLambda1SE = FitInfo.Index1SE;sparseModelPredictors = FitInfo.PredictorNames (B (:, idxLambda1SE) ~ = 0)
sparseModelPredictors =1 x2单元格{“x2”}{“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=分区(n,“坚持” , 0.3);idxTrain =培训(c, 1);idxTest = ~ idxTrain;XTrain = X (idxTrain:);yTrain = y (idxTrain);XTest = X (idxTest:);欧美= y (idxTest);
利用10倍交叉验证和弹性网法求出正则化线性回归模型的系数
[B, FitInfo] =套索(XTrain yTrain,“α” , 0.75,“简历” 10);idxLambda1SE = FitInfo.Index1SE;系数= B (:, idxLambda1SE);coef0 = FitInfo.Intercept (idxLambda1SE);
根据测试数据预测考试成绩。使用参考线将预测值与实际考试成绩进行比较。
yhat = XTest*coef + coef0;持有在 yhat散射(欧美)情节(欧美,欧美)包含(实际考试成绩的 ) ylabel (“预测考试成绩” )举行从
[1] 通过套索回归收缩和选择
邹,H,和t。“通过弹性网的规则化和变量选择”。
[3] Friedman, J., R. Tibshirani, T. Hastie。“基于坐标下降的广义线性模型正则化路径”https://www.jstatsoft.org/v33/i01
Hastie, T., R. Tibshirani, J. Friedman。
[5] Boyd, S.,《通过交替方向乘法器的分布式优化和统计学习》。
有关更多信息,请参见<一个href="//www.tatmou.com/help/matlab/tall-arrays.html" class="a">高大的数组一个>.
要并行运行,请指定
gydF4y2Ba例如:
有关并行计算的更多信息,请参见<一个href="//www.tatmou.com/help/parallel-computing/run-matlab-functions-with-automatic-parallel-support.html" class="a">运行MATLAB函数与自动并行支持金宝app一个>(并行计算工具箱).