ブートストラップと相互検証の違いは何ですか?


21

私は以前、機械学習モデルのロバスト評価にK分割交差検証を適用していました。しかし、この目的のためのブートストラップメソッドの存在も知っています。ただし、パフォーマンスの見積もりに関しては、両者の主な違いはわかりません。

私の知る限り、ブートストラップは一定の数のランダムなトレーニング+テストサブセットを(別の方法ではありますが)生成するので、CVよりもこの方法を使用する利点は何ですか?ブートストラップの場合、事実上任意の数のそのようなサブセットを人工的に生成できる可能性があることを私が理解できる唯一のことは、CVの場合、インスタンスの数はこれに対する一種の制限です。しかし、この側面はごくわずかな迷惑のようです。

回答:


17

相互検証とブートストラップはどちらもリサンプリング手法です。

  • ブートストラップは、置き換えてリサンプルします(通常、元のデータセットと同じ数のケースを持つ新しい「代理」データセットを生成します)。置き換えを伴う描画のため、ブートストラップされたデータセットには、同じ元のケースの複数のインスタンスが含まれ、他の元のケースが完全に省略される場合があります。
  • knx=nkk=n

  • 相互検証という名前が示すように、その主な目的は、モデルの(一般化)パフォーマンスを測定することです。対照的に、ブートストラップは主に、広範囲の統計(たとえば、平均の変動からバギングされたアンサンブルモデルのモデルの変動までの範囲に広がる)の経験的分布関数を確立するために使用されます。

  • bootstragプロシージャの1つ残したアナログはジャックナイフと呼ばれます(実際にはブートストラップよりも古いものです)。

  • 汎化誤差の相互検証推定に類似したブートストラップは、ブートストラップ外推定と呼ばます(テストケースは、ブートストラップの再サンプリングされたトレーニングセットから除外されたものであるため)。

[相互検証とブートストラップ外の検証]ただし、パフォーマンスの見積もりに関して、両者の主な違いはわかりません。

k

oobバイアスを減らすための多くの試み(.632-bootstrap、.632 + -bootstrap)がありますが、それらが実際に状況を改善するかどうかは、当面の状況によって異なります。

文献:


ブートストラップの場合、事実上任意の数のそのようなサブセットを人工的に生成できる可能性があることを私が理解できる唯一のことは、CVの場合、インスタンスの数はこれに対する一種の制限です。

nk

  • 置換なしのCV 組み合わせ(k <nの場合、通常評価される可能性よりもはるかに大きい)と(nk)k
  • bootstrap / oob組み合わせと置換(通常、評価される100または1000のサロゲートモデルよりもはるかに多い)(2n1n)

3

ブートストラップは、置換を伴うランダムサンプリングに依存する任意のテストまたはメトリックです。これは、予測モデルパフォーマンスの検証、アンサンブルメソッド、モデルのパラメーターのバイアスと分散の推定など、多くの状況で役立つ方法です。元のデータセットから置き換えてサンプリングを実行し、同時に、選択されていないデータポイントがテストデータセットであると想定します。この手順を数回繰り返し、モデルパフォーマンスの推定として平均スコアを計算できます。また、ブートストラップはアンサンブルトレーニング手法に関連しています。これは、各ブートストラップデータセットを使用してモデルを構築し、多数の投票(分類用)またはすべての平均(数値予測用)を使用してこれらのモデルをアンサンブルに「バッグ」できるためです。これらのモデルを最終結果として。

相互検証は、モデルのパフォーマンスを検証するための手順であり、トレーニングデータをk個の部分に分割することによって行われます。k-1の部分はトレーニングセットであり、他の部分はテストセットであると想定します。毎回、データの異なる部分を保持しながら、k回繰り返すことができます。最後に、kスコアの平均をパフォーマンス推定として使用します。相互検証は、バイアスや差異の影響を受ける可能性があります。分割数を増やすと、分散も増加し、バイアスが減少します。一方、分割数を減らすと、バイアスが増加し、分散が減少します。

要約すると、相互検証は、使用可能なデータセットを分割して複数のデータセットを作成し、ブートストラップ法は元のデータセットを使用して、置換後のリサンプリング後に複数のデータセットを作成します。ブートストラップは、モデル検証に使用される場合、クロス検証ほど強力ではありません。ブートストラップは、アンサンブルモデルの構築またはパラメーターの推定のみを目的としています。


2

交差検証は、モデルがトレーニングされていないデータでどれだけ一般化されているかを確認することを目的とした手法です。アルゴリズムの結果には影響せず、評価するだけです。

ブートストラップは、平均出力を生成するために、ディシジョンツリーなどのいくつかのモデルの出力を集約するEnsembleメソッドです。技術的に言えば、同じモデル構造の(異なるパラメーターを持つ)いくつかのバリアントの出力に対する出力を平均化するため、単一のモデルに基づく分類アルゴリズムの分散を減らします。したがって、分類アルゴリズムのパフォーマンス変更され評価は行われません

言い換えると、クロス検証はアルゴリズムが一般化する程度を評価しますが、ブートストラップは実際にアルゴリズムをより一般化するのに役立ちます。

実際に、ブートストラップモデルで交差検証を使用して、一般化の程度を確認できます。


3
袋詰めは正しくブートストラップしないのですか?
elemolotiv

0
  • 相互検証:テストエラーの推定値を提供します。
  • ブートストラップ:推定値の標準誤差を提供します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.