相互検証とパラメーターの最適化


11

10分割交差検証を使用すると、パラメーターの最適化について質問があります。

すべてのフォールドのモデルトレーニング中にパラメーターを修正するかどうかを確認したい。つまり、(1)各フォールドの平均精度に対して最適化されたパラメーターのセットを1つ選択する。

または

(2)すべての折りたたみに最適化されたパラメーターを見つけて、すべての折りたたみが異なる最適化パラメーターを使用してモデルをトレーニングし、それぞれの折りたたみのテストデータでテストし、最終的にすべての折りたたみの精度を平均しますか?

交差検証の正しい方法はどれですか?どうもありがとう。


この質問:stats.stackexchange.com/questions/1826/…には2つの素晴らしい回答(最高スコア)があり、質問に役立つと思います。2番目はまさにあなたが望むものです。OBS .:コメントとして書きたいのですが、できませんので回答しました。
アウグスト

回答:


10

まず、2つのパラメータセットを区別します。モデルパラメータ(たとえば、回帰の特徴の重み)と、学習アルゴリズムのパラメータ(およびハイパーパラメータ)です。交差検証の目的は、各分割で学習した母集団サンプル全体で一般化する学習パラメーターを特定することです。

より具体的には、学習パラメーターの上の空間をグローバルに検索しますが、各フォールド内で、学習パラメーターを修正し、モデルパラメーターを学習します。結果は、すべてのフォールドで平均して最高のパフォーマンスを生成する学習パラメーターでなければなりません。次に、これらを使用して、データセット全体でモデルをトレーニングできます。


申し訳ありませんが、私が質問した種類のパラメーターは、あなたが言ったようにハイパーパラメーターです。
ケビン

libSVMのパラメーターcおよびgなど。だから、私は同じcとgを使用して、すべてのフォールドのモデルを上記の(2)の方法と同じようにトレーニングしてから、最適なものを選択する必要がありますか?どうもありがとうございました。
ケヴィン

2
上記の(1)と(2)ははっきりしないので、明示的には言及しませんでした。フォールド全体で平均したときにタスクメトリックを最大化するc&gのスペースを検索する必要があります。したがって、cとgをある値に設定し、すべてのフォールドでトレーニングとテストの手順を実行し、それらを平均して、そのスコアを維持し、cまたはgを変更して、繰り返します。最終的には、最高のc&gを見つけ、すべてのデータで最終モデルをトレーニングできます。
Joel、

どうもありがとうございました。私は答えを要約しようとします。データは10分割されました:fold-1:(train1、test1)... fold-10:(train10、test10)次に、(c1、g1)を使用して、fold-1からfold-10へのトレーニングとテストを行います。すべてのフォールドの精度を平均化します。別の(c2、g2)を試して同じプロセスを実行します...最高の(c、g)が見つかるまで繰り返します。そして、最高の(c、g)の平均精度は、10倍交差検証の結果です。
ケビン

1
正解ですね...
Joel

15

現在受け入れられている答えは、残念ながら不完全です。私はその文に同意しません

交差検証の目的は、各分割で学習した母集団サンプル全体で一般化する学習パラメーターを特定することです。

これは確かに、相互検証の非常に重要なアプリケーションの1つですが、それだけではありません。通常、次の2つのことを行います。

  1. できる最高のモデルを構築する
  2. パフォーマンスの正確な印象をつかむ

ここで、アルゴリズムに応じて目的1を完了するために、いくつかのハイパーパラメーターを調整する必要がある場合がありますが、これは実際に交差検証によって行われることがよくあります。しかし、これはまだ目的2には役立ちません。これを行うには、次のように基本的に相互検証をネストする必要があります。

  • データ全体をn分割する
  • それぞれについて、トレーニングデータをサブフォールドに再度分割します。
  • サブフォールドで相互検証を使用して適切なハイパーパラメーターを学習する
  • これらのハイパーパラメーターを使用して、そのフォールドのトレーニングデータにモデルを作成します
  • テストデータでモデルをテストする
  • 次の折り目で繰り返す

適切なモデルを作成するには、内部相互検証が必要です。良いモデルを取得するには、そうする必要があります。ただし、モデルのパフォーマンスを適切に推定するには、相互検証スキーム内でモデル構築のプロセス全体を実行する必要があります。これには、帰属などのステップも含まれます。


1
エリック、このプロセスを行う方法のリファレンスを提供していただけませんか?
chao

こんにちは@Erikです。分析の一般的な順序は次のようになります。(1)交差検証を使用して最適なチューニングパラメーターを見つける、(2)モデルパラメーターを取得するためにトレーニングデータセット全体でモデル(再取得したチューニングパラメーターを使用)を再トレーニングする、および(3 )入れ子の交差検証を使用して、このメソッドの全体的なパフォーマンスの見積もりを確認しますか?私が混乱しているのは、nester CVのプロセスで異なるハイパーパラメーターが選択される可能性があるため、ネストされたCVは、上記で取得したハイパーパラメーター/モデルパラメーターの全体的なパフォーマンスを具体的に調査しないということです。
ミシェル

私は会話に少し遅れましたが、この方法は「ネストされた」または「二重交差検証」とも呼ばれていることを指摘したいと思います。ここにトムファーン
MD004
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.