テスト誤差が小さくても、オーバーフィットがひどくて、オーバーフィットするモデルを選択すべきではありませんか?いいえ。しかし、それを選択する正当な理由があるはずです。
この動作はXGBoostに限定されません。これは、すべての機械学習手法で共通のスレッドです。アンダーフィットとオーバーフィットの適切なトレードオフを見つける。正式な定義は、バイアス分散トレードオフ(Wikipedia)です。
バイアスと分散のトレードオフ
以下は、モデルの選択を正当化するために、バイアス分散のトレードオフを単純化したものです。
モデルは、データ内の情報を完全に使用できない場合、バイアスが高いと言います。最も頻繁なケース、応答の平均、またはいくつかの強力な機能などの一般情報に依存しすぎています。バイアスは、変数が正規分布している、またはモデルが線形であると仮定しているため、誤った仮定から生じる可能性があります。
モデルは、データからの情報を使いすぎている場合、分散が大きいと言います。これは、提示されたトレーニングセットでのみ役立つ情報に依存しているため、十分に一般化されていません。通常、トレーニングセットを変更するとモデルは大きく変化するため、「高分散」の名前になります。
これらの定義は、アンダーフィットとオーバーフィットの定義に非常に似ています。ただし、これらの定義は単純化されすぎて反対にならないことがよくあります。
- トレーニングとテストの両方のエラーが高い場合、モデルは不十分です。これは、モデルが単純すぎることを意味します。
- テストエラーがトレーニングエラーより大きい場合、モデルは過剰適合です。これは、モデルが複雑すぎることを意味します。
これらの単純化は、モデルの適切な複雑さを選択するのに役立つため、もちろん役立ちます。しかし、彼らは重要な点を見落としています。(ほとんど)すべてのモデルにはバイアスと分散の両方の要素があるという事実です。アンダーフィット/オーバーフィットの説明は、偏りが多すぎる/分散が多すぎることを示していますが、(ほとんど)常に両方を持っています。
バイアスと分散のトレードオフに関する詳細情報が必要な場合は、Googleを介して多くの有用な視覚化と優れたリソースを利用できます。すべての機械学習の教科書には、バイアスと分散のトレードオフに関するセクションがあります。
- 統計学習と統計学習の要素の紹介(こちらから入手可能)。
- パターン認識と機械学習、クリストファービショップ。
- 機械学習:確率論的視点、ケビンマーフィー。
また、私を理解するのに役立った素晴らしいブログ投稿は、スコット・フォートマン・ローの「バイアスと分散のトレードオフの理解」です。
問題への応用
したがって、2つのモデルがあります。
火星XGBoost電車MAE〜4.0〜0.3テストMAE〜4.0〜2.4低分散、高バイアス、より高い分散、より低いバイアス、
そして、あなたは1つを選ぶ必要があります。そのためには、より良いモデルを定義する必要があります。決定に含める必要があるパラメーターは、モデルの複雑さとパフォーマンスです。
- パフォーマンスの1つの「ユニット」と交換できる複雑さの「ユニット」はいくつありますか?
- 分散が大きいほど複雑さが増します。トレーニングしたデータセットとは少し異なるデータセットでモデルを適切に一般化する場合は、複雑さを軽減することを目指してください。
- 簡単に理解できるモデルが必要な場合は、モデルの複雑さを軽減することにより、パフォーマンスを犠牲にしてそれを行うことができます。
- トレーニングセットと同じ生成プロセスに由来することがわかっているデータセットで最高のパフォーマンスを目指している場合は、複雑さを操作してテストエラーを最適化し、これをメトリックとして使用できます。これは、トレーニングセットがより大きなセットからランダムにサンプリングされ、モデルがこのセットに適用される場合に発生します。これは、ほとんどのKaggleコンテストの例です。
ここでの目標は、「過剰適合しない」モデルを見つけることではありません。最適なバイアス分散トレードオフを持つモデルを見つけることです。この場合、XGBoostモデルによって達成されるバイアスの減少は、分散の増加を正当化するのに十分であると主張します。
あなたにできること
ただし、ハイパーパラメーターを調整することで、おそらくより良い結果を得ることができます。
ラウンド数を増やして学習率を下げることは可能性です。勾配ブースティングについて「奇妙な」ことは、トレーニングエラーがゼロに達したポイントを超えてそれを実行すると、テストエラーが改善されるように見えることです(ここで説明するように、Deeper Better Only Only Shallow Is Good?)他のパラメータを設定したら、データセットでモデルをもう少し長く訓練してみてください。
1 / 214。これは専門用語かもしれませんが、フィーチャの相互作用の程度が3である場合(おおよそ:4つのフィーチャの組み合わせは、3つのフィーチャ+ 4番目のフィーチャの組み合わせよりも強力ではありません)、3より大きいサイズのツリーを成長させることは有害です。深さ3の2つのツリーは、深さ4の1つのツリーよりも一般化力があります。これはかなり複雑な概念であり、ここでは説明しませんが、最初にこの資料のコレクションを確認できます。また、深い木は高い分散につながることに注意してください!
バギングと呼ばれるサブサンプリングを使用すると、分散を減らすことができます。個々のツリーの分散が大きい場合、バギングはツリーを平均化し、平均の分散は個々のツリーよりも小さくなります。ツリーの深さを調整した後でも大きな変動が発生する場合は、サブサンプリングを増やしてください(つまり、使用するデータの割合を減らしてください)。特徴空間のサブサンプリングもこの目標を達成します。