キャレット-繰り返されるKフォールド交差検証とネストされたKフォールド交差検証、n回繰り返される


16

キャレットパッケージには、複数の機械学習モデルを構築するための華麗なRライブラリで、モデル構築および評価のためのいくつかの機能を持っています。パラメーターの調整とモデルのトレーニングのために、キャレットパッケージはメソッドの1つとして 'repeatedcv'を提供します。

良いプラクティスとして、次のように機能するネストされたKフォールドクロス検証を使用してパラメーターチューニングを実行できます。

  1. トレーニングセットを「K」個のサブセットに分割する
  2. 各反復で、モデルトレーニング用に 'K-1'サブセットを取得し、モデルテスト用に1サブセット(ホールドアウトセット)を保持します。
  3. さらに、「Kマイナス1」トレーニングセットを「K」サブセットに分割し、パラメータ調整(グリッド検索)に新しい「Kマイナス1」サブセットと「検証セット」を繰り返し使用します。このステップで特定された最適なパラメーターは、ステップ2で設定されたホールドアウトでテストするために使用されます。

一方、繰り返しのKフォールド交差検証は、モデルの分散を見つけるために選択した回数だけ、ステップ1と2を繰り返し繰り返す可能性があると思います。

ただし、キャレットマニュアルのアルゴリズムを実行すると、 'repeatedcv'メソッドは、クロス検証の繰り返しに加えて、ネストされたKフォールドクロス検証も実行する可能性があるようです。

キャレットトレインアルゴリズムhttps://topepo.github.io/caret/training.html

私の質問は:

  1. キャレットの 'repeatedcv'メソッドについての私の過小評価は正しいですか?
  2. そうでない場合は、キャレットパッケージを使用した 'repeatedcv'メソッドを使用して、ネストされたKフォールドクロス検証を使用した例を教えてください。

編集:

この方法論の記事では、さまざまなクロス検証戦略について説明し、比較しています。

Krstajic D、Buturovic LJ、Leahy DE、Thomas S回帰および分類モデルを選択および評価する際の交差検証の落とし穴Journal of Cheminformatics 2014 6(1):10。doi:10.1186 / 1758-2946-6-10

キャレットパッケージを使用した「アルゴリズム2:階層化されたネストされたクロス検証の繰り返し」「アルゴリズム3:変数選択とパラメーターチューニングのためのグリッド検索のクロス検証の繰り返し」に興味があります

回答:


2

提示された(ネストされた)アルゴリズムには何の問題もありません。実際、異なるデータセットのバイアス分散問題に対して適切なロバスト性で実行される可能性があります。ただし、読者は、使用している機能が最も「最適」であると想定すべきだとは言わなかったため、それが不明な場合は、最初に対処する必要がある機能選択の問題があります。

機能/パラメーターの選択

偏りの少ないアプローチは、キツネ(分類子、モデル)をニワトリ(機能、パラメーター)のガードにしたくないため、分類子/モデルを機能/パラメーター選択にリモートで関連するものに近づけないことです。特徴(パラメーター)の選択方法は -特徴選択は、分類器/モデルによって実行される反復学習内にバンドルされます。それどころか、機能(パラメーター)の選択バイアスを最小限に抑えるために、分類子/モデルから遠く離れた別の方法を使用する機能を常に使用します。機能選択中のラッピングvsフィルタリングおよび選択バイアスを調べます(GJ McLachlan)。wrapperflter

主要な機能選択の問題が常に存在します。そのための解決策は、オブジェクトを別のセットに分割するオブジェクト分割(フォールド)のメソッドを呼び出すことです。たとえば、100行100列のデータマトリックスをシミュレートし、別の列の2変量(0,1)をシミュレートします。これをグループ化変数と呼びます。次に、バイナリ(0,1)変数をグループ化変数として使用して、各列でt検定を実行します。100のt検定のいくつかは偶然だけでも重要です。ただし、データ行列を2つのフォールドとに分割するとすぐに、それぞれがD1D2n=50、重要なテストの数が減少します。パラメーターの選択中に使用する最適なフォールド数を決定することにより、データに関するこの問題を解決できるまで、結果は疑わしいかもしれません。したがって、各トレーニングフォールドで使用されるさまざまなサンプルサイズの関数として、ホールドアウトオブジェクトの予測精度を評価するためのブートストラップバイアス方法を確立する必要があります。たとえば、(つまり、学習中に使用されるサンプルサイズの増加)使用されるCVフォールドの数の変更(例:など) π=0.1n0.2n03n0.4n0.5n

最適化/最小化

あなたは本当に関数近似のための最適化または最小化の問題を解いているようです。例えば、、例えば回帰またはパラメータ付きの予測モデルが使用され、y=fバツ1バツ2バツjy継続的にスケーリングされます。これと、予測のバイアス(選択バイアス、バイアス分散、テストオブジェクトからトレーニングオブジェクトへの情報漏えいなど)を最小限に抑える必要がある場合、次のようなスウォームインテリジェンスメソッドの使用中にCVを使用することを検討できます。粒子群最適化(PSO)、蟻コロニー最適化など。PSO(ケネディ&エバーハート、1995年を参照)は、学習中に粒子がパラメータ空間を飛行するときに、粒子間の社会的および文化的情報交換のパラメータを追加します。Swarm Intelligenceのメソッドに慣れると、パラメーター決定の多くのバイアスを克服できることがわかります。最後に、関数近似のためのランダムフォレスト(RF、Breiman、Journ。of Machine Learningを参照)アプローチがあるかどうかはわかりませんが、ある場合、

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