套索或弹性净正规化线性模型
返回符合最小二乘回归系数的线性模型预测数据B
=套索(<一个href="//www.tatmou.com/nl/help/stats/#d123e525261" class="intrnllnk">X,<一个href="//www.tatmou.com/nl/help/stats/#d123e525285" class="intrnllnk">
y)
λ。默认情况下,
正规化回归符合附加选项指定一个或多个参数名称-值对。例如,B
=套索(<一个href="//www.tatmou.com/nl/help/stats/#d123e525261" class="intrnllnk">X,<一个href="//www.tatmou.com/nl/help/stats/#d123e525285" class="intrnllnk">
y,<一个href="//www.tatmou.com/nl/help/stats/#namevaluepairarguments" class="intrnllnk">
名称,值)
(<一个href="//www.tatmou.com/nl/help/stats/#d123e526425" class="intrnllnk">
还返回结构B,<一个href="//www.tatmou.com/nl/help/stats/#d123e526474" class="intrnllnk">
FitInfo)=套索(
创建示例数据和预测变量
rng (“默认” )%的再现性 X =兰德(100 1);y = 2 * X + randn (100 1) / 10;
指定正则化值,找出系数回归模型没有截距项。
λ= 1 e 03;B =套索(X, y,“λ” λ,“拦截” 假)
警告:当“拦截”值是false,“标准化”值设置为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” ,“×5” });
显示变量在模型中对应于最低旨在均方误差(MSE)。
idxLambdaMinMSE = FitInfo.IndexMinMSE;minMSEModelPredictors = FitInfo.PredictorNames (B (:, idxLambdaMinMSE) ~ = 0)
minMSEModelPredictors =1 x2单元格{“x2”} {“x4”}
稀疏模型中的变量显示在一个标准误差的最小均方误差。
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 = cvpartition (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 *系数+ coef0;持有在 yhat散射(欧美)情节(欧美,欧美)包含(实际考试成绩的 )ylabel (“预测考试成绩” )举行从
创建一个矩阵p维正态变量,在那里
rng默认的 %的再现性N = 1 e4;%的样本数量 p = 1 e3;%的数量特征 X = randn(氮、磷);β= randn (p, 1);%乘法系数 beta0 = randn;%添加剂术语 y = beta0 + X *β+ randn (N, 1);%是噪音的最后一学期了
构建默认套索。创建的时间。
B =套索(X, y,“UseCovariance” 、假);为可靠的计时数据%热身套索 抽搐B =套索(X, y,“UseCovariance” 、假);timefalse = toc
timefalse = 6.6592
构建套索适合使用协方差矩阵。创建的时间。
B2 =套索(X, y,“UseCovariance” ,真正的);为可靠的计时数据%热身套索 抽搐B2 =套索(X, y,“UseCovariance” ,真正的);timetrue = toc
timetrue = 0.8453
协方差矩阵的装配时间远小于时间没有它。视图的加速因素使用协方差矩阵的结果。
加速= timefalse / timetrue
加速= 7.8775
检查返回的系数
规范(B-B2) /规范(B)
ans = 2.7363 e15汽油
结果是几乎相同的。
情况- - - - - -按比例缩小的双变量的初始值
向量的零(默认)|数值向量
按比例缩小的双变量的初始值
请注意
此选项仅适用于当您使用
数据类型:单|
权重- - - - - -观察权重
1 / n *的(n, 1)
(默认)|负的向量
观察体重、指定为逗号分隔组成的X。的
单|双
[1]Tibshirani, r .“回归收缩和通过套索选择。”
[2]邹,H。,T。Hastie. “Regularization and Variable Selection via the Elastic Net.”英国皇家统计学会杂志》上。系列B卷。67年,2号,2005年,页301 - 320。
[3]弗里德曼,J。,R. Tibshirani, and T. Hastie. “Regularization Paths for Generalized Linear Models via Coordinate Descent.”统计软件》杂志上。33卷,1号,2010年。<一个href="https://www.jstatsoft.org/v33/i01" target="_blank">https://www.jstatsoft.org/v33/i01
[4]Hastie, T。,R. Tibshirani, and J. Friedman.统计学习的元素。第二版。纽约:施普林格,2008年。
[5]博伊德,美国“分布式优化和统计学习通过乘数的交替方向方法。”
有关更多信息,请参见<一个href="//www.tatmou.com/nl/nl/help/matlab/tall-arrays.html" class="a">高大的数组一个>。
并行运行,指定
gydF4y2Ba例如:
关于并行计算的更多信息,请参阅<一个href="//www.tatmou.com/nl/nl/help/parallel-computing/run-matlab-functions-with-automatic-parallel-support.html" class="a">MATLAB函数自动并行支持运行金宝app一个>(并行计算工具箱)。