Apa perbedaan antara bootstrap dan validasi silang?

21

Saya dulu menerapkan validasi silang K-fold untuk evaluasi yang kuat dari model pembelajaran mesin saya. Tapi saya sadar akan keberadaan metode bootstrap untuk tujuan ini juga. Namun, saya tidak dapat melihat perbedaan utama di antara mereka dalam hal estimasi kinerja.

Sejauh yang saya lihat, bootstrap juga menghasilkan sejumlah himpunan bagian pelatihan + pengujian acak (meskipun dengan cara yang berbeda) jadi apa gunanya, keuntungan menggunakan metode ini di atas CV? Satu-satunya hal yang saya tahu bahwa dalam kasus bootstrap seseorang dapat secara artifisial menghasilkan jumlah subset yang hampir sewenang-wenang sementara untuk CV jumlah instance adalah semacam batasan untuk ini. Tetapi aspek ini tampaknya sedikit mengganggu.

Fredrik
sumber

Jawaban:

17

Validasi silang dan bootstrap adalah metode resampling .

  • bootstrap memberi contoh dengan penggantian (dan biasanya menghasilkan set data "pengganti" baru dengan jumlah case yang sama dengan set data asli). Karena gambar dengan penggantian, set data bootstrap dapat berisi beberapa contoh dari kasus asli yang sama, dan dapat sepenuhnya menghilangkan kasus asli lainnya.
  • contoh validasi silang tanpa penggantian dan dengan demikian menghasilkan set data pengganti yang lebih kecil dari aslinya. Set data ini diproduksi dengan cara yang sistematis sehingga setelah angka ditentukan sebelumnya dari set data pengganti, masing-masing dari kasus asli telah ditinggalkan tepat satu kali. Ini disebut k-fold cross validasi atau meninggalkan- x -out lintas validasi dengan , misalnya cuti-satu-out menghilangkan validasi silang 1 kasus untuk setiap set pengganti, yaitu .n x = nkn k=nx=nkk=n

  • Seperti yang disarankan oleh validasi nama silang , tujuan utamanya adalah mengukur (generalisasi) kinerja suatu model. Sebaliknya, bootstrap terutama digunakan untuk membangun fungsi distribusi empiris untuk rentang statistik yang luas (tersebar luas seperti mulai dari, katakanlah, variasi rata-rata hingga variasi model dalam model ensembel kantong).

  • Analog meninggalkan-satu-keluar dari prosedur bootstrag disebut jackknifing (dan sebenarnya lebih tua dari bootstrap).

  • Analog bootstrap untuk mengesahkan estimasi validasi dari kesalahan generalisasi disebut estimasi out-of-bootstrap (karena kasus-kasus pengujian adalah mereka yang ditinggalkan dari set pelatihan bootstrap yang di-resampled).

[validasi silang vs validasi out-of-bootstrap] Namun, saya tidak bisa melihat perbedaan utama di antara mereka dalam hal estimasi kinerja.

Intuisi itu benar: dalam praktik sering kali tidak ada banyak perbedaan antara validasi -fold iterated -fold dan out-of-bootstrap. Dengan jumlah total yang sama dari model pengganti yang dievaluasi, kesalahan total [dari pengukuran kesalahan prediksi model] telah ditemukan serupa, meskipun oob biasanya memiliki lebih banyak bias dan lebih sedikit varians daripada perkiraan CV yang sesuai.k

Ada sejumlah upaya untuk mengurangi bias oob (.632-bootstrap, .632 + -bootstrap) tetapi apakah mereka akan benar-benar memperbaiki situasi tergantung pada situasi yang dihadapi.

Literatur:


Satu-satunya hal yang saya tahu bahwa dalam kasus bootstrap seseorang dapat secara artifisial menghasilkan jumlah subset yang hampir sewenang-wenang sementara untuk CV jumlah instance adalah semacam batasan untuk ini.

Ya, ada lebih sedikit kombinasi yang mungkin untuk CV daripada untuk bootstrap. Tetapi batas untuk CV mungkin lebih tinggi daripada yang Anda ketahui. Untuk set data dengan case dan -fold cross validation, Anda milikink

  • Kombinasi CV tanpa penggantian (untuk k <n yang jauh lebih besar dari kemungkinan yang biasanya dievaluasi) vs.(nk)k
  • kombinasi bootstrap / oob dengan penggantian (yang sekali lagi jauh lebih banyak daripada, katakanlah, 100 atau 1000 model pengganti yang biasanya dievaluasi)(2n1n)
cbeleites tidak senang dengan SX
sumber
3

Bootstrapping adalah setiap tes atau metrik yang bergantung pada pengambilan sampel acak dengan penggantian. Ini adalah metode yang membantu dalam banyak situasi seperti validasi kinerja model prediktif, metode ensemble, estimasi bias dan varians dari parameter model dll. Ia bekerja dengan melakukan pengambilan sampel dengan penggantian dari dataset asli, dan pada saat yang sama mengasumsikan bahwa titik data yang belum dipilih adalah dataset uji. Kami dapat mengulangi prosedur ini beberapa kali dan menghitung skor rata-rata sebagai estimasi kinerja model kami. Selain itu, Bootstrapping terkait dengan metode pelatihan ensemble, karena kita dapat membangun model menggunakan setiap set data bootstrap dan "tas" model-model ini dalam sebuah ensemble menggunakan voting mayoritas (untuk klasifikasi) atau menghitung rata-rata (untuk prediksi numerik) untuk semua model-model ini sebagai hasil akhir kami.

Validasi silang adalah prosedur untuk memvalidasi kinerja model, dan itu dilakukan dengan membagi data pelatihan menjadi bagian k. Kami berasumsi bahwa bagian k-1 adalah set pelatihan dan menggunakan bagian lain adalah set tes kami. Kita dapat mengulangi bahwa k kali berbeda memegang bagian data yang berbeda setiap kali. Akhirnya, kami mengambil rata-rata skor k sebagai estimasi kinerja kami. Validasi silang dapat mengalami bias atau varians. Meningkatkan jumlah pemisahan, varians akan meningkat juga dan bias akan berkurang. Di sisi lain, jika kita mengurangi jumlah pemisahan, bias akan meningkat dan varians akan berkurang.

Singkatnya, validasi silang membagi dataset yang tersedia untuk membuat beberapa dataset, dan metode Bootstrapping menggunakan dataset asli untuk membuat beberapa dataset setelah melakukan resampling dengan penggantian. Bootstrap tidak sekuat validasi silang ketika digunakan untuk validasi model. Bootstrap lebih lanjut tentang membangun model ensemble atau hanya memperkirakan parameter.

Christos Karatsalos
sumber
2

Validasi silang adalah teknik yang bertujuan untuk melihat seberapa baik model Anda menggeneralisasikan data yang tidak dilatih. Itu tidak mempengaruhi hasil algoritma Anda, itu hanya mengevaluasi mereka.

Bootstrapping adalah metode Ensemble yang menggabungkan output dari beberapa model, seperti Decision Trees, untuk menghasilkan output rata - rata . Secara teknis, ini mengurangi varians dari algoritma klasifikasi yang didasarkan pada model tunggal, karena rata-rata output atas output dari beberapa varian struktur model yang sama (dengan parameter yang berbeda). Karena itu mengubah kinerja algoritma klasifikasi, tidak mengevaluasinya .

Dengan kata lain : Validasi silang mengevaluasi seberapa baik suatu algoritma menggeneralisasi, sedangkan bootstrap sebenarnya membantu algoritma untuk menggeneralisasi lebih baik.

Anda benar-benar dapat menggunakan validasi silang pada model bootstrap untuk melihat seberapa baik itu digeneralisasi.

pcko1
sumber
3
Mengantongi itu bukan bootstrap kan?
elemolotiv
0
  • Validasi Lintas: memberikan perkiraan kesalahan tes.
  • Bootstrap: memberikan kesalahan standar estimasi.
Hangyu Tian
sumber