该示例显示了如何使用套索和弹性网方法来预测基于其重量,位移,马力和加速器的汽车里程(MPG)。
加载CARBIG.
数据集。
加载CARBIG.
提取连续(非相似)预测器(套索不处理分类预测器)。
X = [加速位移马力重量];
使用10倍交叉验证执行套索拟合。
[b,fitinfo] =套索(x,mpg,'简历',10);
绘制结果。
Lassoplot(B,FitInfo,'plottype'那'lambda'那'xscale'那'日志');
计算预测器的相关性。首先消除NANS。
nonan =〜任何(Isnan([x mpg]),2);xnonan = x(nonan,:);MPGNONAN = MPG(NONAN,:);corr(xnonan)
ans =.4×4.1.0000 -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,mpg,'简历'10,'Α',.5);
绘制结果。为每个预测器命名,以便您可以告诉哪个曲线是这样。
pnames = {'加速'那'移位'那'马力'那'重量'};Lassoplot(Ba,Fitinfoa,'plottype'那'lambda'那'xscale'那'日志'那......'predictornames',pnames);
激活数据游标并单击绘图时,您会看到预测器的名称,系数,值lambda.
和那个点的索引,意思是列B.
与适合有关。
在这里,弹性网和套索结果不是很相似。而且,弹性网曲线反映了弹性网技术的显着定性特性。弹性网保留三个非零系数lambda.
增加(朝向左侧),这三个系数达到0左右lambda.
价值。相反,套索曲线显示三个系数中的两个变为0的相同值lambda.
,而另一个系数仍然是较高值的非零lambda.
。
此行为举例说明了一般模式。通常,弹性网倾向于保留或丢弃高度相关的预测器组lambda.
增加。相比之下,套索倾向于下降较小的群体,甚至是个体预测因子。
Fitrinear.
|套索
|lassoglm.
|Lassoplot.
|岭