質問:
マルチクラスデータセットのk分割交差検定用にトレーニングセットをどの程度正確に分割しますか?
Christina
2014-02-26 23:39:54 UTC
view on stackexchange narkive permalink

相互検証は、システムの真の精度を正直に評価できるため、最も重要なツールの1つです。言い換えると、相互検証プロセスにより、システムの真の精度をより正確に把握できます。

たとえば、1つのクラスを含むデータセットがある場合(顔のデータセットについて考えてみましょう):

この場合、データセットを kフォールド(または k部分)に分割します。 kの一般的な値は10であるため、その場合、データセットを10の部分に分割します。相互検証の kラウンドを実行します。各ラウンドでは、1つのフォールドを検証に使用し、残りのフォールドをトレーニングに使用します。分類器をトレーニングした後、検証データでその精度を測定します。 kラウンドの精度を平均して、最終的な交差検定の精度を取得します。

 データセットを準備します。10倍に分割します。fori= 1:10%10 timesfold( i)トレーニング終了の残りをテストする場合最終精度=平均(ラウンド1、ラウンド2、....、ラウンド10)。  

複数のクラスを含むデータセットがある場合(顔、飛行機、イチゴのカテゴリの3つのクラスを考えてみましょう):

I私の意見が正しいかどうかわからない:3つのカテゴリのそれぞれが10倍に分割されています。上記のように最終的な精度を測定しますか?例:

 最初のラウンドの場合:1番目、2番目、3番目のカテゴリから最初のフォールドを取得し、それらをテストとして使用し、残りのすべてのフォールド(すべてのカテゴリから)をトレーニングとして使用します。 2回目のラウンドの場合:1番目、2番目、3番目のカテゴリから2番目のフォールドを取得し、それらをテストとして使用し、残りのすべてのフォールド(すべてのカテゴリから)をトレーニングなどとして使用します。ラウンド10まで...  

それは正しいですか?私の意見は正しいですか?あなたの助けと説明が必要です。

どんな助けでも大歓迎です。

最初の例では、データセットにクラスが1つしかない場合、分類子は何を分類することになっていますか?
サポートベクターマシンを使用しています。しかし、1つだけでなく複数のクラスを含むデータがあります。
さて、しかしあなたの最初の例は何を意味することになっていますか? 「たとえば、1つのクラスを含むデータセットがある場合」と書いたのですが、分類するものは何ですか?
jajajaええあなたは正しいです:D
二 答え:
vafisher
2014-02-27 00:20:12 UTC
view on stackexchange narkive permalink

一般的に、既知の分類をトレーニングおよびテストサンプルの選択に組み込みたくないと思います。これを行うと、テストサンプルの各クラスの比率は、現在のマシンのトレーニングに使用されるサンプルの比率と常に同じになりますが、実際には、トレーニングとテストの間でサンプリングの変動を確認して、分類器がどのように機能するかを確認する必要があります。そのような実際の状況。基本的には、分類変数を無視して、データセットをランダムに10倍に分割します。

まず、ご回答ありがとうございます。しかし、残念ながら、あなたは私の質問をよく理解していなかったと思います:)
@Christina: vafisherは正しいです。一般に、データをラベル(分類)とは独立して分割するため、将来のシナリオを反映して、計算にばらつきが生じる可能性があります。このようにデータを階層化するために私が見る唯一の理由は、クラスのサイズが非常に等しくない場合です。ブートストラップの検証も検討することをお勧めします。
lennon310
2014-03-01 12:04:50 UTC
view on stackexchange narkive permalink

最初に、モデル/パラメータの選択が必要か、モデルのみが必要かを決定する必要があります。モデルが修正されると、ブートストラップはモデリング手順の実行方法を決定するのにより理にかなっているようです。

複数のデータセットに相互検証を実装している場合は、ラベルを考慮せずにデータをランダムに分割します。テストデータセット内の1つのラベルがトレーニングされておらず、検証エラーにカウントされる場合があります。通常、安定性のために50〜100回繰り返すには、10回の相互検証を強くお勧めします。

クラスの不均衡の問題を回避することをお勧めします(したがって、上記の除外されたラベルイベントの確率を間接的に減らします)。しかし、データが本当にこの問題に悩まされている場合は、この投稿の以前の回答にいくつかのリサンプリング戦略があります。

どういたしまして :)
親愛なるレノン、同じクラスの400枚の画像を含むデータセットがあると考える場合(顔データベースを考えてみましょう)。 10交差検定を使用する場合。したがって、データは10個のチャンクに分割されます。また、各チャンクには、トレーニングとして90%(36画像)とテストとして10%(4画像)に分割された40枚の画像が含まれています。ネガティブトレーニングとテストも使用したい場合。ネガティブなトレーニングとテストの数をどのように取るか?
顔以外の画像をさらに400枚選択できます。そして、800から10のチャンクをすべて分割します。相互検証には10個のチャンクで十分であり、各チャンクを再度分割する必要はないと思います。
ああ、いや、正と負のトレーニングで分類器をトレーニングしてから、正と負のテストを分類したいと思います。そのため、常にバランスの取れたデータを取得するために、一定数のネガティブトレーニングとテストを行う必要があります。
36のネガティブなトレーニングとテストを受けるのは良いことだと思いますか?この場合、私たちは同数のポジティブトレーニングとネガティブトレーニングを受けています。
800枚の画像すべて(400 +、400-)で、トレーニングとして720をランダムに選択し、残りの80をテストとして選択します。これらの720サンプル内の+/-の数についてはあまり気にする必要はありません。相互検証を10〜15回繰り返します。基本的に、不均衡の問題に直面することはありません。


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...