このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
套索および並列計算によるワ▪ドデ▪タ
この例では,套索
と交差検証を使用して重要な予測子を特定する方法を示します。
標本デ,タを読み込み,説明を表示します。
负载光谱描述
描述= 11×72 char数组'==汽油的光谱和辛烷值数据== ' ' ' ' 60个汽油样品的近红外光谱和辛烷值' ' ' 'NIR:近红外光谱,在900 nm到1700 nm的2 nm间隔内测量' '辛烷值:辛烷值' '光谱:包含近红外和辛烷值变量的数据集数组' ' ' '参考资料:' 'Kalivas, John H.,“近红外光谱的两个数据集,”化学计量学和智能实验室系统,第37节(1997) pp.255-259 '
套索と弹性净はワイドデータ,つまり,観測値よりも多くの予測子をもつデータに特に適しています。このタ▪▪プのデ▪▪タには冗長な予測子があります。交差検証とともに套索
を使用すると,重要な予測子を識別できます。
既定の套索
近似を計算します。
[b fitinfo] = lasso(NIR,辛烷);
対数x軸を使用して,あてはめた套索正則化の予測子の個数をλ
の関数としてプロットします。
lassoPlot (b fitinfo“PlotType”,“λ”,“XScale”,“日志”);
λ
の適切な値を指定することは困難です。適切な値を判断するには,交差検証による近似を試してください。
tic [b fitinfo] =套索(近红外,辛烷,“简历”10);toc
运行时间为7.353767秒。
結果をプロットします。
lassoPlot (b fitinfo“PlotType”,“λ”,“XScale”,“日志”);
推奨されたλ
の値を表示します。
fitinfo。λ1SE
Ans = 0.0302
Mseが最小であるλ
を表示します。
fitinfo。λMinMSE
Ans = 0.0144
λ
の推奨値にいてあてはめの品質を調べます。
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”,“日志”);
λ
が増える(左に向かう)にれて,mseは急速に増加します。係数が小さくなりすぎて,応答を適切に近似しなくなります。λ
が減るにれて,モデルが大きくなります(より多くの非ゼロ係数をもようになります)。Mseの増加は,モデルが過適合になっていることを示します。
λ
値の既定のセットには,すべての予測子を含むのに十分小さい値は含まれません。この場合,より小さな値を考慮する理由はありません。ただし,既定よりも小さい値が望ましい場合は,LambdaRatio
パラメ,タ,を使用するか,λ
パラメ,タ,を使用して,一連のλ
値を提供します。套索
のリファレンスペ,ジを参照してください。
交差検証が遅くなる場合があります。并行计算工具箱のライセンスがある場合は,並列計算を使用して交差検証済み套索推定値の計算を高速化できます。並列プ,ルを起動します。
Mypool = parpool()
使用“本地”配置文件启动并行池(parpool)…与6名工人相连。mypool = Pool with properties: Connected: true NumWorkers: 6 Cluster: local AttachedFiles: {} AutoAddClientPath: true IdleTimeout: 30 minutes(剩余30分钟)SpmdEnabled: true
並列計算オプションを設定し,套索推定値を計算します。
Opts = statset(“UseParallel”,真正的);抽搐;[b fitinfo] = lasso(近红外,辛烷,“简历”10“选项”、选择);toc
运行时间为3.799009秒。
2 .のワ,カ,を使用して並列計算を行うと,この問題では高速になります。
並列プ,ルを停止します。
删除(mypool)
使用“本地”配置文件的并行池正在关闭。
参考
套索
|lassoglm
|fitrlinear
|lassoPlot
|脊