最近、私が従ったプロセス(修士論文のコンポーネント)は適合しすぎていると見なすことができると言われました。私はこれをよりよく理解し、他の人が同意するかどうかを確認したいと思っています。
論文のこの部分の目的は
勾配ブースト回帰ツリーとデータセットのランダムフォレストのパフォーマンスを比較します。
選択した最終モデル(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回の実行のそれぞれの間に行われたことを以下に示します。
- i番目のトレーニングセット(i = 1、..、25)についてサンプリングされたデータは、5つの同じサイズのグループに分割されました。5つのグループのうち4つを使用してモデルを適合させ、GBMパラメーター(たとえば、反復回数)をj番目(j = 1、..、18)グリッドの値と等しく設定しました。
- 5番目のグループのパフォーマンスは、このモデルを使用して計算されました。
- ステップ1と2をさらに4回繰り返しました(k = 5の通常の古いk倍CV)。パフォーマンスは5回のサブランの平均であり、これは特定のパラメーター値のセットでGBMの予想されるパフォーマンスを構成しました。
- グリッド内の他の17行について、手順1〜3を繰り返しました。
完了すると、上記の演習から最適なパラメーター値が決定され、GBMはこれらのパラメーター値と完全なi番目のトレーニングセットを使用して適合されました。そのパフォーマンスは、i番目のテストセットで推定されました。
このプロセス全体が25回実行されると、GBMで使用できるパフォーマンスの測定値は25になります。その後、彼らはまったく同じ方法でRFのために集められました。
GBMを比較して選択した後、25のパフォーマンス測定値を調べ、平均と標準誤差を使用して、このデータのGBMモデルの信頼区間を決定しました。