このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例は,観測より多くの予測子をもつモデルを正則化する方法を示しています。“ワイドデータ”とは,観測より予測子が多いデータのことです。通常,ワイドデータは重要な予測子を特定するために使用されます。lassoglm
を探索ツールまたは審査ツールとして使用して比較的少数の変数セットを選択し,モデル化および検索の優先順位を設定します。交差検証を高速化するために,並列計算を使用します。
ovariancancer
データを読み込みます。このデータの奥林匹克广播服务公司
ワークスペース変数に216の観測と4000の予測子があります。応答は,“癌症”
または“正常”
のバイナリで,grp
ワークスペース変数にあります。この応答を関数lassoglm
で使用できるようにバイナリに変換します。
负载ovariancancery = strcmp (grp,“癌症”);
並列計算を使用するためにオプションを設定します。parpool
を使用して並列計算を準備します。
选择= statset (“UseParallel”,真正的);parpool ()
使用'local'配置文件启动并行池(parpool)…connection to the parallel pool (number of workers: 6). ans = ProcessPool with properties: Connected: true NumWorkers: 6 Cluster: local attachfiles: {} AutoAddClientPath: true IdleTimeout: 30分钟(剩余30分钟)SpmdEnabled: true
正則化したモデルの交差検証セットをあてはめます。グループの1つのメンバーを除くすべてを排除するのではなく,相関性の高い予測子のグループが維持されるように,α
パラメーターを使用します。一般的に,比較的大きいα
の値を使用します。
rng (“默认”)%的再现性[B,S] = lsoglm (obs,y, S)“二”,“NumLambda”, 100,...“α”, 0.9,“LambdaRatio”1的军医,“简历”10“选项”、选择);toc
运行时间为90.892114秒。
交差検証プロットを調べます。
lassoPlot (B S“PlotType”,“简历”);传奇(“显示”)%显示传奇
トレースプロットを調べます。
lassoPlot (B S“PlotType”,“λ”,“XScale”,“日志”)
右(緑色)の縦の破線は,交差検証の逸脱度が最小になるλ
を示します。左(青色)の破線は,最小逸脱度に標準偏差を1つだけ加算しています。この青い線にはより多くの予測子が含まれています。
[S.DF (S.Index1SE) S.DF (S.IndexMinDeviance)]
ans =1×250 89
100年個の異なるλ
値を使用するあてはめをlassoglm
に要求しました。何個が使用されたでしょうか。
大小(B)
ans =1×24000 84
lassoglm
84年は個の値を使用した後に停止しました。これは,小さいλ
値に対する逸脱度が小さすぎたためです。当てはめたモデルの逸脱度が二項反応の逸脱度に比べて小さすぎる場合,過適合を避けるためにlassoglm
は停止し,予測子変数は無視されます。
名前と値のペアの引数“λ”
を使用すると,lassoglm
で使用する項を強制的に増やすことができます。たとえば,S.Lambda
内の値より小さい値を3つ多く含む一連のλ
の値を定義します。
minLambda = min (S.Lambda);explicitLambda = [minLambda *[。1.01 .001] S.Lambda];
関数lassoglm
を呼び出すときに“λ”,explicitLambda
を指定します。一連のλ
の値を明示的に指定した場合でも,あてはめたモデルの逸脱度が小さすぎるとlassoglm
は停止します。
時間を節約するには,次のようにします。
λ
の数,つまり近似の回数を減らす
交差検証の分割数を減らす
LambdaRatio
の値を大きくする
逐次計算と次の3つすべての時間短縮メソッドを使用します。
tic [Bquick,Squick] = lassoglm(obs,y, y)“二”,“NumLambda”25岁的...“LambdaRatio”1飞行,“简历”5);toc
运行时间是16.517331秒。
新しい結果を最初の結果とグラフで比較します。
lassoPlot (Bquick Squick,“PlotType”,“简历”);传奇(“显示”)%显示传奇
lassoPlot (Bquick Squick,“PlotType”,“λ”,“XScale”,“日志”)
最小値で非ゼロの係数の数に1つの標準偏差モデルを加えると,最初の計算と同じく約50になります。