29

私が読んだことから、相互検証は次のように実行されると常に考えてきました。

k分割交差検定では、元のサンプルがランダムにk個のサブサンプルに分割されます。k個のサブサンプルのうち、1個のサブサンプルがモデルをテストするための検証データとして保持され、残りのk −1個のサブサンプルがトレーニングデータとして使用されます。次に、交差検定プロセスがk回繰り返され(フォールド)、k個のサブサンプルのそれぞれが検証データとして1回だけ使用されます。次に、フォールドからのkの結果を平均化(またはその他の方法で組み合わせ)して、単一の推定値を生成できます。

したがって、k個のモデルが作成され、最後のモデルはそれらの平均です。Wekaのガイドでは、各モデルは常にすべてのデータセットを使用して構築されると書かれています。では、Wekaでの相互検証はどのように機能しますか?モデルはすべてのデータから構築されており、「相互検証」とは、k分割が作成され、各分割が評価され、最終的な出力結果が単純に分割の平均結果になることを意味しますか?

4

6 に答える 6

52

したがって、ここでもシナリオがあります。100個のラベル付きデータがあります

トレーニングセットを使用する

  • wekaは100個のラベル付きデータを取得します
  • これらの100個のデータから分類器を構築するためのアルゴリズムを適用します
  • これらの100個のデータにその分類子AGAINを適用します
  • 分類器のパフォーマンスを提供します(開発元と同じ100個のデータに適用されます)

10倍のCVを使用する

  • Wekaは100個のラベル付きデータを取得します

  • 10個の同じサイズのセットを生成します。各セットは2つのグループに分けられます。90個のラベル付きデータがトレーニングに使用され、10個のラベル付きデータがテストに使用されます。

  • 90個のラベル付きデータからアルゴリズムを使用して分類器を生成し、それをセット1の10個のテストデータに適用します。

  • セット2から10に対して同じことを行い、さらに9つの分類子を生成します

  • これは、10個の等しいサイズ(90個のトレーニングと10個のテスト)のセットから生成された10個の分類器のパフォーマンスを平均します。

それがあなたの質問に答えるかどうか私に知らせてください。

于 2012-05-10T17:26:36.867 に答える
11

コメントで答えたと思いますが、私の評判ではまだ次のことができません。

Rushdiの受け入れられた回答に加えて、交差検定フォールドセット用に作成されたモデルは、パフォーマンス測定が実行されて平均化された後、すべて破棄されることを強調したいと思います。

結果のモデルは、テストオプションに関係なく、常に完全なトレーニングセットに基づいています。MTAは引用されたリンクの更新を求めていたので、ここにあります:https ://web.archive.org/web/20170519110106/http://list.waikato.ac.nz/pipermail/wekalist/2009-December/ 046633.html/。これは、WEKAのメンテナの一人からの回答で、私が書いたものだけを指摘しています。

于 2014-01-17T12:28:56.963 に答える
5

私はそれを理解したと思います。(たとえば)を取りweka.classifiers.rules.OneR -x 10 -d outmodel.xxxます。これは2つのことを行います:

  1. 完全なデータセットに基づいてモデルを作成します。これはに書き込まれるモデルですoutmodel.xxx。このモデルは、交差検定の一部としては使用されません。
  2. 次に、相互検証が実行されます。相互検証には、説明したように、データのセグメントに対するトレーニングとテストを使用して、(この場合は)10個の新しいモデルを作成することが含まれます。重要なのは、交差検定で使用されるモデルは一時的なものであり、統計を生成するためにのみ使用されることです。これらは、ユーザーに提供されるモデルと同等ではなく、モデルに使用されるものでもありません。
于 2012-09-06T19:46:40.860 に答える
1

Wekaは、ここで説明した従来のk分割交差検定に従います。完全なデータセットがあり、それを重複することなく等しいセットのk個(たとえば、10倍のCVの場合はk1、k2、...、k10)に分割します。次に、最初の実行で、トレーニングセットとしてk1からk9を取得し、モデルを開発します。k10でそのモデルを使用して、パフォーマンスを取得します。次は、トレーニングセットとしてk1からk8およびk10です。それらからモデルを開発し、それをk9に適用してパフォーマンスを取得します。このように、各折り目が最大で1回使用されるすべての折り目をテストセットとして使用します。

次に、Wekaはパフォーマンスを平均し、それを出力ペインに表示します。

于 2012-05-04T00:02:03.770 に答える
1

データを10セグメントに分割し、決定木を作成して評価することで10交差検定を実行すると、Wekaはデータセット全体で11回目のアルゴリズムを実行します。これにより、実際に展開できる分類子が生成されます。評価結果と誤差の推定値を取得するために10分割交差検定を使用し、最後にもう一度分類を実行して、実際に使用する実際の分類器を取得します。k番目の交差検証では、異なる決定木が作成されますが、最終的な決定木はデータセット全体で作成されます。CVは、過剰適合または大きな分散の問題があるかどうかを確認するために使用されます。

于 2019-02-28T17:50:38.537 に答える
0

ワイカト大学の「Wekaによるデータマイニング」によると:

相互検証は、ホールドアウトを繰り返すことで改善する方法です。
交差検定は、推定の分散を減らすことによって実際に改善する、繰り返しホールドアウトを行う体系的な方法です。

  • トレーニングセットを取得し、分類器を作成します
  • 次に、その分類子のパフォーマンスを評価しようとしています。その評価には、すべて統計的なものであるため、ある程度の差異があります。
  • 推定値の分散をできるだけ低く保ちたいと思います。交差検定は分散を減らす
    方法であり、「層化交差検定」と呼ばれる交差検定の変形はさらに分散を減らします。(テストのために10%を保持し、それを10回繰り返す「繰り返しホールドアウト」方式とは対照的です。)

では、Wekaでの相互検証はどのように機能しますか?:
相互検証では、データセットを1回だけ分割しますが、k個、たとえば10個に分割します。
次に、9つのピースを取得してトレーニングに使用し、最後のピースをテストに使用します。次に、同じ部門で、さらに9個のピース​​を取り、それらをトレーニングに使用し、差し出されたピースをテストに使用します。毎回テストするために異なるセグメントを使用して、すべてを10回実行します。つまり、データセットを10個に分割し、これらの各部分を順番にテスト用に保持し、残りの部分をトレーニングし、テストを実行して、10個の結果を平均します。


これは、10倍の交差検定になります。データセットを10の部分に分割します(これらは「フォールド」と呼ばれます)。各部分を順番に差し出します。結果を平均します。したがって、データセット内の各データポイントは、テストに1回、トレーニングに9回使用されます。
これは10倍の交差検定です。

于 2021-10-19T13:50:51.367 に答える