这个例子展示了套索
标识并丢弃不必要的预测器。
从各种均值的指数分布中生成200个五维人工数据X样本。
rng (3“旋风”)%的再现性X = 0 (200 5);为X(:,ii) = exprund (ii,200,1);结束
生成响应数据Y
=X
*r
+每股收益
,在那里r
只有两个非零分量,噪声呢每股收益
为正常,标准差为0.1。
r =[0; 2。0;3;0];Y = X*r + randn(200,1)* 0.1; / /
符合交叉验证的模型顺序套索
,并绘制结果。
[b, fitinfo] =套索(X, Y,“简历”10);lassoPlot (b fitinfo“PlotType”,“λ”,“XScale”,“日志”);
该图显示了不同值的回归中的非零系数λ
正则化参数。更大的值λ
出现在图的左边,意味着更多的正则化,导致更少的非零回归系数。
虚线表示λ
值的最小均方误差(在右边),和λ
具有最小均方误差加上一个标准差的值。建议将后一个值设置为λ
.这些行只在执行交叉验证时出现。通过设置交叉验证“简历”
名称-值对的论点。本例使用10倍交叉验证。
图的上半部分显示了自由度(df),意思是回归中的非零系数的数量,作为Lambda的函数。在左边,Lambda的大值导致除一个系数外其他系数都为0。右边的5个系数都是非零的,尽管图上只清楚地显示了两个。其他三个系数是如此之小以至于你无法从视觉上区分它们和0。
对于Lambda的小值(朝向图中的右侧),系数值接近最小二乘估计。
找到λ
最小交叉验证均方误差加上一个标准偏差的值。检查适合的MSE和系数λ
.
林= fitinfo.Index1SE;fitinfo.MSE (lam)
ANS = 0.1398.
b (:, lam)
ans =5×10 1.8855 0 -2.9367 0
套索
系数向量找得好吗r
.
为比较,求。的最小二乘估计r
.
小红帽Y = X \
小红帽=5×1-0.0038 1.9952 0.0014 -2.9993 0.0031
估计b (:, lam)
的均方误差略大于小红帽
.
res = X* rar - Y;%计算残差MSEmin = res ' * res / 200% b(:,lam)值是0.1398
MSEmin = 0.0088
但b (:, lam)
只有两个非零分量,因此可以对新数据提供更好的预测估计。
fitrlinear
|套索
|lassoglm
|lassoPlot
|脊