3

SVM を使用しているときに、元のデータ セットに対して 3 方向の分割を実行することをお勧めします。たとえば、70/15/15 分割のようにします。

この分割は、トレーニングの場合は %70、テストの場合は %15、「検証」と呼ばれるものの場合は %15 に相当します。

これが良い方法である理由についてはかなり明確ですが、実際にこれを実行するために必要なナットとボルトについてはよくわかりません。多くのオンライン ソースが重要性について議論していますが、プロセスの明確な (または少なくともアルゴリズム的な) 説明を見つけることができないようです。たとえば、sklearn はここでそれについて説明していますが、確かなツールを提供する前に停止します。

ここに私の考えがあります:

  • トレーニング セットを使用してアルゴリズムをトレーニングする
  • テストセットを使用してエラー率を見つける
  • ?? パラメータを微調整する
  • 検証セットを使用してエラー率を再度取得します

誰かが私を良いリソースの方向に向けることができれば、私は感謝します.

4

1 に答える 1

3

すべての教師あり学習アルゴリズムにおける検証セットの役割は、アルゴリズムのパラメーターの最適値を見つけることです (存在する場合)。

データをトレーニング/検証/テスト データに分割した後、アルゴリズムをトレーニングするためのベスト プラクティスは次のようになります。

  1. 初期学習パラメータを選択する
  2. トレーニング セットとパラメータを使用してアルゴリズムをトレーニングする
  3. 検証セットを使用して (検証) 精度を取得する (クロス検証テスト)
  4. パラメータを変更し、最高の検証精度につながるパラメータが見つかるまで2を続ける
  5. テスト セットを使用して (テスト) 精度を取得します。これは、新しい目に見えないデータに対するトレーニング済みアルゴリズムの実際の期待精度を表します。

交差検証テストを実行するための高度なアプローチがいくつかあります。libsvm などの一部のライブラリには、k-fold cross validationが含まれています。

k 分割交差検証では、トレーニング データをランダムに k 個の同じサイズの部分に分割します。k-1 部分を使用してトレーニングし、残りの部分で交差検証します。これをさまざまなサブセットで k 回行い、最後に平均を使用します。

ウィキペディアは良い情報源です:

于 2014-01-26T09:37:13.870 に答える