2013-10-12 9 views
20

クロスバリデーションとグリッド検索の違いは何ですか?どのように動作しますか?最初にクロス検証とグリッド検索を行う必要がありますか?クロスバリデーションとグリッド検索

私の質問は、このドキュメントを読んでから来ている:あなたがあなたのモデルを評価するのに使用するために、データの一部を予約する際sklearn

答えて

56

クロス検証があります。さまざまな相互検証方法があります。概念的には、概念的には、データの70%(ちょうど70%は必要ありません)を訓練に使用し、残りの30%のデータを使用してモデルの評価を行いますパフォーマンス。モデルの訓練と評価に異なるデータが必要な理由は、過適合から保護するためです。もちろん、実際に頻繁に使用されるk-foldクロスバリデーションのような他の(やや複雑な)クロスバリデーションテクニックがあります。

グリッド検索とは、モデルのセット(グリッド上にあるパラメータの値がお互いに異なる)を意味します。あなたがしているのは、各モデルを訓練し、相互検証を使用してモデルを評価することです。次に、最も成果のあるものを選択します。

具体的な例を挙げれば、サポートベクターマシンを使用している場合は、gammaCの異なる値を使用できます。たとえば、(gamma, C)の値が(1, 1), (0.1, 1), (1, 10), (0.1, 10)のグリッドを作成できます。それはgamma[1, 0.1]C[1, 10]の商品のようなものなのでグリッドです。グリッド検索は、基本的にSVMをこれらの4つの対の(gamma, C)の値ごとに訓練し、相互検証を使用して評価し、最良に行ったものを選択します。

8

クロス検証は、モデルのテストセットのパフォーマンス(一般化)をロバストに推定する方法です。 グリッド検索は、パラメータのグリッドによってパラメータ化された、一連のモデルの中から最良のものを選択する方法です。

ここでは「モデル」とは、訓練されたインスタンスを意味するものではなく、より多くのアルゴリズムとパラメータ(SVC(C=1, kernel='poly')など)を意味します。

(私はのように簡単な単語を修飾する場合、私はちょうどかNeemanの素敵な説明に加えて、短い、consise定義を与えたいと思ったかわからない)

+2

よく分かります。しかしscikit-learnの例では、最初に 'X_train、X_test、y_train、y_test = train_test_split( X、y、test_size = 0)を実行することによってdata_setの分割があります。5、random_state = 0'とし、グリッド検索 'clf = GridSearchCV(SVC(C = 1)、tuned_pa​​rameters、cv = 5、scoring = score)にはありません。トレーニングを500列車と500個のテスト対象に設定した後、グリッド検索は500のトレーニングセットを「cv = 5」の5倍のクロスバリデーションに分割しますか?500オブジェクトは250と250または400と100などに分割されます?! – Linda

+6

はい、そうです。データの半分は、グリッド検索モデルの選択(5倍のクロスバリデーションを使用)の後**評価のために予約されています。その理由は、彼らは最高のモデルを選択したいだけでなく、それが一般的なもの(新しいデータに対してどれほどうまくいくか)についての良い見積もりを持っているということです。グリッド検索のクロスバリデーションのスコアを使用することはできません。これは、スコアが最も高いモデルを選択したため、スコアに選択バイアスが設定されている可能性があります。そのため、グリッド検索が終了した後にテストするデータの一部を保持するのはこのためです。 –

5

クロスバリデーション、単にテストとトレーニングデータを分離し、テストデータでトレーニング結果を検証します。私が知っている交差検証手法は2つあります。

最初に、テスト/トレイン相互検証。テストと電車としてデータを分割する。

第2に、k倍クロス検証はデータをk個のビンに分割し、各ビンをテストデータとして使用し、残りのデータをトレーニングデータとして使用し、テストデータに対して検証します。このプロセスをk回繰り返します。そして、平均的なパフォーマンスを得る。テストデータとトレーニングデータの両方を最大化するため、小さなデータセットに特に役立つk倍のクロス検証が可能です。

グリッド検索;体系的にパラメータチューンの複数の組み合わせを処理し、それぞれを検証し、どのパラメータが最良のパフォーマンスをもたらすかを判断します。パラメータを変更するだけの多くの組み合わせで作業できます。

関連する問題