2016-04-27 18 views
0

これは一般的にxgbと勾配ブーストの理論的な質問です。どのようにしてmax_depthとnum_roundsまたはn_estimatorsのバランスが最良であるかを知ることができます。明らかにmax_depthを増やすと、ブースティングでは推奨されない複雑なモデルが作成されますが、何百回ものブースティングでトレーニングデータがあふれてしまう可能性があります。 CVでmax_depthが5、num_roundsが1000、max_depthが15、num_roundsが100であると仮定すると、未知のデータのモデルをリリースするときに使用しますか?最大深度と推定値の数またはラウンド数のバランス

答えて

2

理論的には、これらのモデルの一般化境界を提供することができますが、問題は非常に緩やかです。したがって、上限を小さくしても、より良いスコアが保証されるわけではありません。実際には、最良のアプローチは、あなたの一般化推定をより信頼できるものにすることです - あなたは10-CVを使用していますか? 10x10 CV(10CVのランダムシャッフル10回)を使用してください。まだ回答が得られない場合は100を使用してください。ある時点で勝者が得られます。さらに、実際にモデルを公開する場合、おそらく予想される値が最良のメトリックではないでしょうか? CVは通常、平均値(期待値)を報告するので、これだけ見るのではなく、得られた結果の全スペクトルを見てください。同じ平均値と異なるstdを持つ2つの値は、何を選択するのかを明確に示しています。平均値と平均値の両方が同じ場合、スコアの最小値(「最悪の場合」のシナリオをキャプチャします)を見ることができます。

要約すると:平均値だけでなく、スコアをよく見てください。これを信頼できるものにするために評価を複数回繰り返す。

+0

ありがとうございました。私は答えとしてそれを取る。私は無作為のサンプル(データの10%かもしれない)上のエラーを監視するかどうか、各ラウンドが助けになるのだろうかと思っていました。あるいは、ラウンドごとに検証のロスがどのように変化するのかもしれません。もし私が(xgboostで200の大きな初期停止をしていて、それをSklearnでやる方法がわからないと)検証の損失が毎回減少する度に増加するラウンドの数をプロットすると、そのラインを持つモデル他のすべての行の下ではより良いでしょうか? – Run2

+0

このようなカーブの下にある領域は、最終的なモデルを使用するように、良いセレクタを与えません。以前は悪い場合は問題ではありません。 – lejlot

+0

こんにちは - 私はエリアについて考えていませんでした。モデル1はこれらの値を持っています – Run2

関連する問題