主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

並列化によるワイドデータの正則化

この例は,観測より多くの予測子をもつモデルを正則化する方法を示しています。“ワイドデータ”とは,観測より予測子が多いデータのことです。通常,ワイドデータは重要な予測子を特定するために使用されます。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

lassoglm84年は個の値を使用した後に停止しました。これは,小さいλ値に対する逸脱度が小さすぎたためです。当てはめたモデルの逸脱度が二項反応の逸脱度に比べて小さすぎる場合,過適合を避けるために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になります。