套索和弹性网交叉验证

这个例子展示了如何使用套索和弹性网方法,根据重量、位移、马力和加速度来预测汽车的英里数(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倾向于放弃较小的群体,甚至是个体预测者。

另请参阅

||||

相关的话题