ネストされた相互検証の使用


14

モデル選択に関する Scikit Learnのページでは、ネストされた相互検証の使用について言及されています。

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

2つの交差検証ループが並行して実行されます。1つはGridSearchCV推定器によってガンマを設定し、もう1つはcross_val_scoreによって推定器の予測パフォーマンスを測定します。結果のスコアは、新しいデータの予測スコアの公平な推定値です。

私が理解していることから、clf.fitクロス検証をネイティブに使用して、最適なガンマを決定します。その場合、上記のようにネストされたcvを使用する必要があるのはなぜですか?注では、ネストされたcvが予測スコアの「不偏推定値」を生成することに言及しています。それもそうではありませんclf.fitか?

また、cross_validation.cross_val_score(clf, X_digits, y_digits)手順からclfの最良の推定値を取得できませんでした。どうやってそれができるのか教えていただけますか?

回答:


18

C

GC CawleyおよびNLC Talbot、モデル選択における過剰適合とパフォーマンス評価におけるその後の選択バイアス、Journal of Machine Learning Research、2010年。Research、vol。11、pp。2079-2107、2010年7月。(http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf

説明例と実験評価によるバイアスの理由は論文で見つけることができますが、本質的には、パフォーマンス評価基準が何らかの方法でモデルについての選択を行う場合、それらの選択は(i)に基づいているということです(ii)性能評価基準が評価されるデータの特定のサンプルの統計的特性。言い換えると、ハイパーパラメーターを調整するときに交差検証エラーを過剰に適合させる可能性がある(すべて非常に簡単すぎる)ため、バイアスが発生します。


5

保持されたテストセットでclf.fit1つの不偏推定値が生成され、ネストされた交差検証でcross_val_score複数の不偏推定値が生成されます。ネストされた相互検証の利点は、アルゴリズムでまだ確認されていないデータを使用して、実際のパフォーマンスをよりよく評価できることです。たとえば、1つではなくネストされたcvで3つのテストスコアを取得するため、評価が向上します。

最適な推定値に関する2番目の質問に対する答えは、ネストされたcvを使用して近似モデルのパラメーターを取得することは現在(v0.14)不可能であるということcross_val_scoreです。私の答えを参照してくださいここでは一例で。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.