34

デシジョン ツリーとクロス検証について読んでいて、両方の概念を理解しています。ただし、クロス検証はデシジョン ツリーに関連しているため、理解に苦慮しています。基本的にクロス検証を使用すると、データセットが比較的小さい場合にトレーニングとテストを交互に実行して、エラーの推定を最大化できます。非常に単純なアルゴリズムは次のようになります。

  1. 必要な折り数を決定します (k)
  2. データセットを k 個のフォールドに分割します
  3. トレーニング セットに k-1 フォールドを使用してツリーを構築します。
  4. テスト セットを使用して、ツリーのエラーに関する統計を推定します。
  5. 結果を後で保存する
  6. 手順 3 ~ 6 を k 回繰り返し、テスト セットの別の折り畳みを除外します。
  7. 反復全体でエラーを平均して、全体的なエラーを予測します

私が理解できない問題は、最後に k 個の決定木があることです。それらは同じように分割されない可能性があるため、すべてわずかに異なる可能性があります。どの木を選びますか? 私が持っていた1つのアイデアは、エラーが最小限のものを選択することでした(ただし、与えられたフォールドで最高のパフォーマンスを発揮したというだけでは最適にはなりません-階層化を使用すると役立つかもしれませんが、私が読んだことはすべて、それは少ししか役に立たないと言っています)。

相互検証を理解しているので、ポイントは、後でプルーニングに使用できるノード統計で計算することです。したがって、実際には、ツリー内の各ノードには、与えられたテスト セットに基づいて計算された統計があります。重要なのはノード統計のこれらですが、エラーを平均化する場合です。各ツリーで分割する対象が異なる可能性がある場合、k 個のツリーにまたがる各ノード内でこれらの統計をどのようにマージしますか。

各反復で全体的なエラーを計算するポイントは何ですか? それは剪定の際に使えるものではありません。

この小さなしわの助けをいただければ幸いです。

4

6 に答える 6

26

私が理解できない問題は、最後に k 個の決定木があることです。それらは同じように分割されない可能性があるため、すべてわずかに異なる可能性があります。どの木を選びますか?

相互検証の目的は、分類器 (または決定木、またはその他の自動学習アプリケーション)の特定のインスタンスを選択するのを助けることではなく、モデルを修飾することです。つまり、平均エラー率、これに対する偏差などのメトリックを提供することです。アプリケーションから期待できる精度のレベルを主張するのに役立ちます。相互検証がアサートするのに役立つことの 1 つは、トレーニング データが十分に大きいかどうかです。

特定のツリーの選択に関しては、代わりに、利用可能なトレーニング データの 100% でさらに別のトレーニングを実行する必要があります。これにより通常、より優れたツリーが生成されます。(クロス検証アプローチの欠点は、[通常は少ない] 量のトレーニング データを「フォールド」に分割する必要があることです。質問で示唆しているように、これにより、特定のデータ インスタンスに対して過適合または過小適合のツリーが生じる可能性があります)。 .

ディシジョン ツリーの場合、ノードで収集され、ツリーの剪定に使用される統計への参照が何に関係するのかわかりません。交差検証関連の手法の特定の用途でしょうか?...

于 2010-02-22T23:08:42.170 に答える
6

最初の部分では、他の人が指摘したように、通常、最終的なモデルを構築するためにデータセット全体を使用しますが、クロス検証(CV) を使用して、新しい目に見えないデータの汎化誤差をより適切に推定します。

2番目の部分については、CVと検証セットを混同していると思います。これは、検証セットで計算された関数値が分割の前後に増加しない場合に、ノードを剪定してツリーの過適合を避けるために使用されます。

于 2010-02-24T03:58:35.297 に答える
3

交差検証の目的は、モデルを認定することであることは既に述べました。言い換えれば、クロスバリデーションは、使用されたデータに関係なく、選択された「パラメーター」で生成されたモデルのエラー/精度の推定を提供します。パフォーマンスに満足するまで、さまざまなパラメーターを使用して、corss 検証プロセスを繰り返すことができます。次に、データ全体で最適なパラメーターを使用してモデルをトレーニングできます。

于 2011-03-01T21:55:47.840 に答える
3

交差検証を使用する主なポイントは、異なるデータで使用した場合に、トレーニング済みモデルのパフォーマンスをより正確に推定できることです。

あなたはどの木を選びますか?1 つのオプションは、トレーニング セットのすべてのデータを使用して新しいツリーを作成することです。

于 2010-02-22T23:10:01.453 に答える
2

交差検証は、デシジョン ツリーの構築/枝刈りには使用されません。これは、新しいデータの到着をシミュレートすることによって (すべてのデータに基づいて構築された) ツリーがどの程度優れたパフォーマンスを発揮するかを推定するために使用されます (記述したとおりにいくつかの要素なしでツリーを構築することによって)。それによって生成されたツリーの 1 つを選択するのはあまり意味がありません。これは、モデルが所有するデータによって制約されているためです (ツリーを新しいデータに使用する場合、すべてを使用しないと実際には悪化する可能性があります)。
ツリーは、選択したデータ (通常はすべて) に基づいて構築されます。プルーニングは通常、なんらかのヒューリスティックを使用して行われます (つまり、ノード内の要素の 90% がクラス A に属しているため、それ以上先に進めないか、情報ゲインが小さすぎます)。

于 2010-02-22T23:08:28.643 に答える