私はしばらくの間 Weka を使用してきましたが、それについて調査したところ、多くのコード例でテスト セットとトレーニング セットが使用されていることがわかりました。たとえば、離散化とベイジアン ネットワークでは、それらの例はほとんどの場合、テスト セットとトレーニング セットを使用して示されます。ここでのデータ処理の基本的な理解が欠けている可能性がありますが、なぜこれが常に当てはまるように見えるのか理解できません. プロジェクトで離散化とベイジアン ネットワークを使用していますが、どちらもテスト セットやトレーニング セットを使用したことがなく、どちらも使用する必要がある理由がわかりません。BayesNet で相互検証を行っているので、その精度をテストしています。テストセットとトレーニングセットの用途を誤解していますか??? ああ、最も簡単な用語を使用してください。私はまだデータ処理の世界にあまり慣れていません。
2 に答える
トレーニング セットとテスト セットの背後にある考え方は、一般化エラーをテストすることです。つまり、データセットを 1 つだけ使用した場合、このセットを学習するだけで完全な精度を達成できます (これはIBk
、Weka の最近傍分類器が行うことです)。ただし、一般的には、これは望ましいことではありません。機械学習アルゴリズムは、与えられたサンプル データの背後にある一般的な概念を学習する必要があります。これが発生するかどうかをテストする方法は、トレーニングとテストに別々のデータを使用することです。
交差検証を使用している場合は、個別のトレーニング セットとテスト セットを使用しています。これは、データセット全体をトレーニングとテストに分割する方法にすぎません。たとえば、10 倍の交差検証を行う場合、データ全体が同じサイズの 10 セットに分割されます。これらのうち 9 つを組み合わせてトレーニングに使用し、残りの 1 つをテストに使用します。次に、トレーニング用に 9 つの異なるセットを組み合わせてプロセスを繰り返し、10 個の個別のパーティションすべてをテストに使用するまで繰り返します。
したがって、トレーニング/テスト セットと相互検証は概念的に同じことを行っています。相互検証は、データ セット全体を平均化することにより、より厳密なアプローチを取ります。
トレーニング データとは、「モデルの構築」に使用されるデータを指します。たとえば、アルゴリズム J48 (ツリー分類器) を使用してインスタンスを分類している場合、トレーニング データを使用して、概念の一般化である「学習した概念」を表すツリーが生成されます。これは、学習したルール、生成されたツリー、調整されたニューラル ネットワークなどを意味します。新しい (目に見えない) インスタンスを取得し、それらを正しく分類できるようになります (「学習した概念」はトレーニング データに依存しません)。
テスト セットは、モデルが概念を適切に学習したかどうかをテストするために使用されるデータの割合です (トレーニング データとは無関係です)。
WEKA では、データ セットをトレーニング データ (J48 の場合はツリーを構築するため) とテスト データ (概念が学習されたことを確認するためにモデルをテストするため) に分割する実行を実行できます。たとえば、データの 60% をトレーニングに使用し、40% をテストに使用できます (トレーニングとテストに必要なデータの量を決定することは、データ マイニングの重要な問題の 1 つです)。
しかし、WEKA に実装されている堅牢なテスト方法である相互検証を簡単に確認することをお勧めします。ここで非常によく説明されています: https://stackoverflow.com/a/10539247/1565171
さらに質問がある場合は、コメントを残してください。