このモデル化アプローチには過剰適合がありますか


11

最近、私が従ったプロセス(修士論文のコンポーネント)は適合しすぎていると見なすことができると言われました。私はこれをよりよく理解し、他の人が同意するかどうかを確認したいと思っています。

論文のこの部分の目的

  • 勾配ブースト回帰ツリーとデータセットのランダムフォレストのパフォーマンスを比較します。

  • 選択した最終モデル(GBMまたはRF)のパフォーマンスを確認します。

R のgbmおよびrandomForestパッケージが、とともに使用されてい
caretます。

実行されたプロセスは次のとおりです。

  • データの予備的な前処理(例:名目上の予測値の欠損値を "欠落"と呼ばれる明確なカテゴリで埋める)。ターゲット変数は、前処理に関しては調べられませんでした(これは非常に最小限でした)。
  • 各アルゴリズムのメタパラメータの値のグリッドを作成します(GBMの反復回数など)。
  • データセットの25のランダムな分割を作成します(65%のトレーニングと35%のテスト)。

GBMに対して次の25回を繰り返します(毎回、ランダムトレイン/テストスプリットの1つを利用します。毎回、どのトレーニングとテストセットがコース変更の「最新」であるかを確認します。これは、グループ脱退相互検証の繰り返しです)。

  • 5分割交差検証を使用して、グリッド検索でアルゴリズムの「最適な」パラメーター設定を見つけます。現在の実行では、以前の実行の何も使用されていません。
  • 決定したら、モデルを完全な「現在の」トレーニングセットに適合させ、「現在の」テストセットを予測します。この実行のパフォーマンス測定を取っておきます。

この方法で25のパフォーマンス指標(実際にはドメイン固有の指標ですが、精度と考えることができます)が取得されたら、RFに対してまったく同じ独立したトレーニングとテストのサンプルを使用して、まったく同じプロセスに従います(同じプロセス、異なるプロセスのみ)もちろんグリッド検索)。

現在、GBMとRFの当時の「現在の」テストセットから、25のパフォーマンス測定があります。ウィルコクソン符号順位検定と順列検定を使用してそれらを比較します。GBMの方が優れていることがわかりました。また、GBMに対するこれらの25回の実行からのパフォーマンス測定の分布は、最終的なGBM分類器の期待されるパフォーマンスであると主張しました。

私がしなかったことは、ランダムなテストセットを最初から引き出して、すべてのトレーニングデータから構築された最終的なGBMモデルと比較するために脇に置いておくことでした。データの分割、モデルの調整、ホールドアウトプロセスのテストを25回繰り返したのと比べて1回だけ行ったので、実際に行った方がはるかに優れていたと私は思います。

ここに過剰適合がありますか?25回の実行を使用してGBMとRFを選択したので、プロセスから取得したパフォーマンス測定値を完全なモデルのパフォーマンス推定として使用できないことを意味しますか?

編集 ウェインのコメントに応えて、25回の実行のそれぞれの間に行われたことを以下に示します。

  1. i番目のトレーニングセット(i = 1、..、25)についてサンプリングされたデータは、5つの同じサイズのグループに分割されました。5つのグループのうち4つを使用してモデルを適合させ、GBMパラメーター(たとえば、反復回数)をj番目(j = 1、..、18)グリッドの値と等しく設定しました。
  2. 5番目のグループのパフォーマンスは、このモデルを使用して計算されました。
  3. ステップ1と2をさらに4回繰り返しました(k = 5の通常の古いk倍CV)。パフォーマンスは5回のサブランの平均であり、これは特定のパラメーター値のセットでGBMの予想されるパフォーマンスを構成しました。
  4. グリッド内の他の17行について、手順1〜3を繰り返しました。

完了すると、上記の演習から最適なパラメーター値が決定され、GBMはこれらのパラメーター値と完全なi番目のトレーニングセットを使用して適合されました。そのパフォーマンスは、i番目のテストセットで推定されました。

このプロセス全体が25回実行されると、GBMで使用できるパフォーマンスの測定値は25になります。その後、彼らはまったく同じ方法でRFのために集められました。

GBMを比較して選択した後、25のパフォーマンス測定値を調べ、平均と標準誤差を使用して、このデータのGBMモデルの信頼区間を決定しました。


「次の25回繰り返す...」セクションの最初の箇条書きで詳細を確認したいと思います。どのデータが5倍に折り畳まれ、データはメタパラメータの各セットにどのように使用されますか?
ウェイン、

@ウェイン、私の編集を見てください。
B_Miner 2013

回答:


5

GBMとRFを単に選択する代わりに、代わりに100の異なるGBM分類子から選択したと想像してください(GBMトレーニングはある種のランダム性を使用し、ランダムシード1から100を割り当てると仮定します)。次に、それらの100 GBMの1つを最高のGBMとして選択します。しかし、ほぼ確実に、選択した100モデルのうちの1つが幸運にも99人の兄弟を倒したため、パフォーマンスの見積もりは楽観的になります。

あなたは2人の学習者のみを使用し、それらは同一のアルゴリズムによって訓練されていなかったため、単一のGBMはおそらくそれに対する選択圧力をあまり持っていませんでした(特に、それがRFを大幅に上回っていた場合)、エラー推定は依然として少し楽観的。


GBMが最終モデルとして選択された場合(そして、最初に単一のテストセットを引き出したふりをした場合)、すべてのトレーニングデータを取得し、GBMを適合させます(ここでもCVを使用してアルゴリズムのパラメーターを選択します)。次に、このテストセットを採点します。その1つのテストセットのエラー測定値が、25の再サンプルから得たものよりも優れていると本当に思いますか?これは私が苦労している部分です。モデル選択に同じデータを使用できない(GBM over RFまたはGBMと他の100の選択肢)か、およびそれから生じたエラーメジャーを使用できないのですか?
B_Miner 2013

私はもちろん、性能を評価するために、トレーニングデータを使用していないのアイデアを得るが、この場合は....異なると、有効なように見えた
B_Miner

@B_Miner非常に軽微な違反だと思いますが、私はあなたの論文委員会には参加していません:P
rrenaud

違反が存在するので、それを「モデル選択に同じデータを使用する(GBM over RFまたはGBMと他の100の選択肢)およびそれに起因するエラーメジャーを使用する」ことに起因しますか?
B_Miner 2013

3

正当な2つの手法を混在させてみたように思えますが、実際に行った方法では、ケース間でデータが漏洩することになります。

下位レベルでは、CVを正しく使用しているようです。これは、トップレベルもCVである必要があることを示唆しているため、ネストされたCVになりますが、トップレベルはCVではありません。

トップレベルでは、ブートストラップ検証を実行したいと思われる可能性があります。その場合、ダブルブートストラップはトップレベルと下位レベルで機能しますが、トップレベルは適切なブートストラップではありません。

あなたは見たいかもしれません、このstackexchangeの記事。そしてそれがリンクする記事、そしておそらくあなたのトップレベルをCVに再構成します。また、フランクハレル以外はそのスレッドに投稿せず、CVを何度も繰り返すことを推奨していることに注意してください。(私はショックを受けました、1回の繰り返しでそれをするべきだと思いました。)


トップレベルとはどういう意味ですか-繰り返されるグループの25回の繰り返しはグループを除外しますか?
B_Miner 2013

ハレル博士のコメントを読みました。そのアドバイスのいくつかとデータマイニング(大きなデータ)との間には分断があると思います。私が完了した25回の反復には4日かかりましたが、それは実質的に否定的なケースをサンプリングしていませんでした。
B_Miner 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.