这个例子展示了如何使用套索和弹性网方法,根据重量、位移、马力和加速度来预测汽车的英里数(MPG)。
加载carbig
数据集。
负载carbig
提取连续(非范畴)谓词(lasso不处理范畴谓词)。
X =[加速度排量马力重量];
执行套索配合10倍交叉验证。
[b, fitinfo] =套索(X,英里/加仑,“简历”10);
策划的结果。
lassoPlot (b fitinfo“PlotType”,“λ”,“XScale”,“日志”);
计算预测因素的相关性。首先消除nan。
isnan([X MPG]),2);Xnonan = X (nonan:);MPGnonan = MPG (nonan:);相关系数(Xnonan)
ans =4×410000 -0.5438 -0.6892 -0.4168 -0.5438 1.0000 0.8973 0.9330 -0.6892 0.8973 1.0000 0.8645 0.4168 0.9330 0.8645 1.0000
由于一些预测因子是高度相关的,执行弹性网拟合。使用α
= 0.5。
(ba, fitinfoa) =套索(X,英里/加仑,“简历”10“α”5);
策划的结果。说出每个预测器的名字,这样你就能知道哪条曲线是哪条曲线。
pnames = {“加速”,“位移”,“马力”,“重量”};fitinfoa lassoPlot (ba,“PlotType”,“λ”,“XScale”,“日志”,…“PredictorNames”,pnames);
当您激活数据游标并单击绘图时,您会看到预测器的名称、系数和的值λ
和该点的索引,表示中列b
与契合度相关。
在这里,弹性网和套索的结果不是很相似。此外,弹性网图反映了弹性网技术的一个显著的定性特性。弹性网保留三个非零系数为λ
增大(图左),这三个系数在大致相同的时候达到0λ
价值。相比之下,lasso图显示,在相同的值下,三个系数中的两个变为0λ
,而对于较大的值,另一个系数不为零λ
。
这种行为是一种一般模式的例证。一般来说,弹性网倾向于保留或删除高度相关的预测因子组λ
增加。相反,lasso倾向于放弃较小的群体,甚至是个体预测者。
fitrlinear
|套索
|lassoPlot
|lassoglm
|脊