デシジョン ツリーとクロス検証について読んでいて、両方の概念を理解しています。ただし、クロス検証はデシジョン ツリーに関連しているため、理解に苦慮しています。基本的にクロス検証を使用すると、データセットが比較的小さい場合にトレーニングとテストを交互に実行して、エラーの推定を最大化できます。非常に単純なアルゴリズムは次のようになります。
- 必要な折り数を決定します (k)
- データセットを k 個のフォールドに分割します
- トレーニング セットに k-1 フォールドを使用してツリーを構築します。
- テスト セットを使用して、ツリーのエラーに関する統計を推定します。
- 結果を後で保存する
- 手順 3 ~ 6 を k 回繰り返し、テスト セットの別の折り畳みを除外します。
- 反復全体でエラーを平均して、全体的なエラーを予測します
私が理解できない問題は、最後に k 個の決定木があることです。それらは同じように分割されない可能性があるため、すべてわずかに異なる可能性があります。どの木を選びますか? 私が持っていた1つのアイデアは、エラーが最小限のものを選択することでした(ただし、与えられたフォールドで最高のパフォーマンスを発揮したというだけでは最適にはなりません-階層化を使用すると役立つかもしれませんが、私が読んだことはすべて、それは少ししか役に立たないと言っています)。
相互検証を理解しているので、ポイントは、後でプルーニングに使用できるノード統計で計算することです。したがって、実際には、ツリー内の各ノードには、与えられたテスト セットに基づいて計算された統計があります。重要なのはノード統計のこれらですが、エラーを平均化する場合です。各ツリーで分割する対象が異なる可能性がある場合、k 個のツリーにまたがる各ノード内でこれらの統計をどのようにマージしますか。
各反復で全体的なエラーを計算するポイントは何ですか? それは剪定の際に使えるものではありません。
この小さなしわの助けをいただければ幸いです。