Mengapa fungsi bootstrap scikit-learn membuat ulang set tes?

15

Saat menggunakan bootstrap untuk evaluasi model, saya selalu berpikir sampel out-of-bag langsung digunakan sebagai set tes. Namun, ini tampaknya tidak menjadi kasus untuk pendekatan scikit-learning yang sudah ketinggalan zamanBootstrap , yang tampaknya membangun set tes dari menggambar dengan penggantian dari subset data out-of-bag. Apa alasan statistik di balik ini? Adakah skenario khusus di mana teknik ini lebih baik daripada hanya mengevaluasi sampel yang diambil sendiri atau sebaliknya?

ikan bali
sumber
validasi silang? resampling?
EngrStudent
Jika Anda merujuk pada tag, itu tidak ditambahkan oleh saya. Sebenarnya saya bootstrap sebagai alternatif untuk CV.
ikan gibberfish
Saya pikir Anda salah paham. Dalam validasi silang mereka akan mengulangi proses beberapa kali pada subset data dan melihat variasi dalam hasil atau parameter model. Dalam hal itu variasi parameter itu sendiri menginformasikan kualitas kecocokan, dan belum tentu kesalahan OOB. Saya tidak terbiasa dengan perpustakaan tertentu jadi saya hanya meninggalkan komentar dengan ide itu.
EngrStudent

Jawaban:

3

Sampel bootstrap digunakan untuk mengevaluasi kinerja algoritma oleh banyak iterasi. Saat melakukannya, kinerja pada set yang diubah secara acak dievaluasi.

Sebaliknya saat melakukan, misalnya 10 Validasi Silang Lipat, Anda hanya melakukan 10 iterasi pada rangkaian data tes dan kereta yang berbeda.

n=20saya=10,000

Tautan yang Anda kirim sudah rusak, jadi saya menambahkan deskripsi fungsi di versi sklearn saat ini (0,14)

Deskripsi metode

Pengambilan sampel acak dengan penggantian-validasi silang iterator Menyediakan indeks kereta / tes untuk membagi data dalam rangkaian tes kereta api saat melakukan resampling pada input n_iter kali: setiap kali pemisahan acak baru dilakukan dan kemudian sampel diambil (dengan penggantian) pada setiap sisi split untuk membangun pelatihan dan set tes. Catatan: bertentangan dengan strategi validasi silang lainnya, bootstrap akan memungkinkan beberapa sampel terjadi beberapa kali di setiap pemisahan. Namun sampel yang terjadi di split kereta tidak akan pernah terjadi di split tes dan sebaliknya. Jika Anda ingin setiap sampel muncul paling banyak satu kali, Anda mungkin harus menggunakan validasi silang ShuffleSplit sebagai gantinya.

MaxBenChrist
sumber
2

Mungkin Anda tertarik pada sesuatu. Tampaknya orang lain ditarik di thread yang sama dan Bootstrapitu usang dalam mendukung lebih disengaja menggunakan resamplemetode dengan mencoba dan benar sklearn.cross_validationpendekatan seperti StratifiedKFold.

hobs
sumber