scikit-learnブートストラップ関数がテストセットをリサンプルするのはなぜですか?


15

モデルの評価にブートストラップを使用するとき、私は常に、out-of-bagのサンプルがテストセットとして直接使用されると思っていました。ただし、これは非推奨の scikit-learnBootstrapアプローチの場合には当てはまらないようです。これは、out-of-bagデータサブセットからの置き換えで描画からテストセットを構築しているようです。これの背後にある統計的推論は何ですか?この手法が、out-of-bag-sampleで評価するよりも優れている、またはその逆の特定のシナリオはありますか?


相互検証?リサンプリング?
EngrStudent 2015

タグを参照している場合、それは私が追加したものではありません。実際には、CVの代わりとしてブートストラップしています。
gibberfish

誤解していると思います。相互検証では、データのサブセットに対してプロセスを数回繰り返し、結果またはモデルパラメーターの変動を調べます。その場合、パラメーターの変化自体が適合の品質を通知し、必ずしもOOBエラーを通知するわけではありません。私は特定のライブラリに精通していないので、アイデアについてコメントを残しました。
EngrStudent、2015年

回答:


3

ブートストラップサンプルは、アルゴリズムのパフォーマンスを何度も繰り返し評価するために使用されます。その際、ランダムに変更されたセットのパフォーマンスが評価されます。

対照的に、たとえば10回の交差交差検証を実行する場合、異なるトレインおよびテストデータセットで10回の反復のみを実行します。

=20=10000

投稿したリンクがダウンしているため、現在の(0.14)バージョンのsklearnに関数の説明を追加しました

メソッドの説明

置換相互検証イテレーターを使用したランダムサンプリング入力/反復回数を再サンプリングしながら、トレーニングテストセットのデータを分割するためのトレーニング/テストインデックスを提供します。分割のトレーニングとテストセットを構築します。注:他の相互検証戦略とは異なり、ブートストラップでは、一部のサンプルを各分割で数回発生させることができます。ただし、トレインスプリットで発生するサンプルは、テストスプリットでは発生しません。逆も同様です。各サンプルを1度だけ発生させたい場合は、代わりにShuffleSplitクロス検証を使用する必要があります。


2

おそらくあなたは何かに夢中になっていました。他の人がその同じスレッドで引っ張っていて、のような試行錯誤した真のアプローチでメソッドをBootstrapより意図的に使用することを支持して廃止されたようです。resamplesklearn.cross_validationStratifiedKFold

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