通过套索和并行计算的数据广

这个例子说明如何使用套索与交叉验证一起确定重要预测指标。

装载样品数据并显示的说明。

加载描述
描述= 11×72字符数组“汽油的==光谱和辛烷数据==”“”“NIR光谱和60个汽油样品的辛烷值”“”“NIR:NIR光谱,在2个纳米的间隔测量从900纳米至1700纳米“‘辛烷:辛烷值’‘光谱:包含NIR和辛烷’”“的变量的数据集数组‘参考:’‘Kalivas,约翰H.,‘近红外光谱的两个数据集,’化学计量学’”和智能实验室系统,V.37(1997年),pp.255-259“

套索和弹性网特别适合用于宽的数据,即,具有比与套索和弹性网观测多个预测数据。有这种类型的数据的冗余预测。您可以使用套索与交叉验证一起确定重要预测指标。

计算默认套索适合。

并[b fitinfo] =套索(NIR,辛烷);

情节拟合套索正规化预测的数量的函数LAMBDA,使用对数X-轴。

lassoPlot(B,fitinfo,'PlotType'“拉姆达”'的XScale'“日志”);

这是很难说的哪个值LAMBDA是合适的。要确定一个很好的价值,尝试用交叉验证配件。

抽动并[b fitinfo] =套索(NIR,辛烷,'简历',10);TOC
经过时间是7.353767秒。

绘制的结果。

lassoPlot(B,fitinfo,'PlotType'“拉姆达”'的XScale'“日志”);

显示的建议值LAMBDA

fitinfo.Lambda1SE
ANS = 0.0302

显示LAMBDA以最小的MSE。

fitinfo.LambdaMinMSE
ANS = 0.0144

检查拟合质量的建议值LAMBDA

lambdaindex = fitinfo.Index1SE;MSE = fitinfo.MSE(lambdaindex)DF = fitinfo.DF(lambdaindex)
MSE = 0.0528 DF = 11

拟合只使用了401所预测的11,并实现了小型交叉验证MSE。

检查交叉验证MSE的情节。

lassoPlot(B,fitinfo,'PlotType''简历');%用途为MSE数比例看小MSE值更集(GCA,'YScale'“日志”);

LAMBDA增加(朝向左侧),MSE迅速增加。该系数被降低太多,他们没有充分地拟合响应。如LAMBDA降低时,模型是较大的(有更多的非零系数)。越来越MSE表明,模型过度拟合。

默认设置LAMBDA值不包括值足够小,以包括所有的预测。在这种情况下,似乎没有成为一个理由来看待较小的值。但是,如果你想要比默认值越小,使用LambdaRatio参数,或提供的序列LAMBDA使用值LAMBDA参数。有关详细信息,请参阅套索参考页。

交叉验证可能会很慢。如果你有一个并行计算工具箱许可证,加速的交叉验证使用并行计算套索估计计算。开始并行池。

myPool的= parpool()
开始使用“本地”的个人资料...连接到6名工人并行池(parpool)。myPool的=池与属性:连接:真NumWorkers:6集群:本地AttachedFiles:{} AutoAddClientPath:真正的IdleTimeout:30分钟(30分钟剩余)SpmdEnabled:真

设置并行计算选项,并计算套索估计。

OPTS = statset('UseParallel',真正);抽动;并[b fitinfo] =套索(NIR,辛烷,'简历'10,“选项”,选择采用);TOC
经过时间是3.799009秒。

使用两个工人在并行计算是在这个问题上要快。

停止并行池。

删除(myPool的)
使用“本地”轮廓平行池正在关闭。

也可以看看

||||

相关话题