ホーム>source

いくつかのシミュレーションでxgboostを実行しています。サンプルサイズは125です。5倍の相互検証エラーを測定していました。つまり、各ラウンドでトレーニングサンプルサイズは100、テストサンプルサイズは25です。他のすべてのパラメーターは修正済みですが、「n_estimators」、つまりブーストラウンドの数。

2つのオプションがあります。

  • 異なるn_estimatorsに対して5倍のcvを実行し、早期停止を使用しないでください。この場合、cvの結果から最適なn_estimatorを選択できます。

  • さらにトレーニングサンプルをトレーニング(80)と検証(20)に分割し、80のトレーニング観測でモデルをトレーニングし、20の検証観測で早期停止を監視します。この場合、巨大なn_estimatorを選択して自動停止させることができます。

質問は

  • オプション1で、別の個別のテストサンプルがある場合、テストデータで5つの相互検証モデルを使用して、平均/過半数の投票を計算できますか?または、125個すべてのobsで最高のパラメーターを使用してモデルを再度トレーニングし、テストセットで予測を行う必要がありますか?

  • オプション2では、80トレーニングはモデルをトレーニングするのに十分で、20検証はパフォーマンスを監視するのに十分ですか? (オプション1ではサンプルサイズも小さいですが、少し良いです)

  • xgboostモデルを他のモデルと比較する場合、どのオプションが優れていますか?

あなたの答え
  • 解決した方法 # 1

    検証データとして非常に少量のデータを使用すると、過剰適合のリスクが非常に高くなるため、推奨されません。オプション1はオプション2よりも優れており、交差検証での平均化は、最適なパラメーターでモデルを再度トレーニングするよりも優れた選択肢です。

    ただし、この小さなサンプルケースでは、最善の方法は、複雑なモデルよりも単純なモデルを選択することです。

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ aws cli - aws cli get mediaコマンド