Saya cukup baru di hutan acak. Di masa lalu, saya selalu membandingkan akurasi fit vs tes terhadap fit vs kereta untuk mendeteksi overfitting apapun. Tapi saya baru baca di sini bahwa:
"Di hutan acak, tidak perlu untuk validasi silang atau set tes terpisah untuk mendapatkan estimasi yang tidak bias dari kesalahan set tes. Diperkirakan secara internal, selama menjalankan ..."
Paragraf kecil di atas dapat ditemukan di bawah Bagian estimasi kesalahan out-of-bag (oob) . Konsep Out of Bag Error ini benar-benar baru bagi saya dan yang sedikit membingungkan adalah bagaimana kesalahan OOB dalam model saya adalah 35% (atau akurasi 65%), namun, jika saya menerapkan validasi silang ke data saya (hanya penahanan sederhana metode) dan membandingkan kedua tes fit vs terhadap fit vs train saya mendapatkan akurasi 65% dan akurasi 96% masing-masing. Dalam pengalaman saya, ini dianggap overfitting tetapi OOB memiliki kesalahan 35% seperti kesalahan fit vs test saya . Apakah saya overfitting? Haruskah saya menggunakan validasi silang untuk memeriksa overfitting di hutan acak?
Singkatnya, saya tidak yakin apakah saya harus mempercayai OOB untuk mendapatkan kesalahan yang tidak bias dari kesalahan set tes ketika fit vs train saya menunjukkan bahwa saya overfitting!
Jawaban:
kesalahan pelatihan (seperti pada
predict(model, data=train)
) biasanya tidak berguna. Kecuali Anda melakukan pemangkasan pohon (non-standar), itu tidak bisa jauh di atas 0 dengan desain algoritma . Hutan acak menggunakan agregasi bootstrap dari pohon keputusan, yang dikenal sangat buruk. Ini seperti kesalahan pelatihan untuk pengelompokan 1 tetangga terdekat.Jadi kesalahan out-of-bag tidak persis sama (pohon kurang untuk agregasi, lebih banyak salinan kasus pelatihan) sebagai kesalahan validasi silang, tetapi untuk tujuan praktis itu cukup dekat.
Apa yang masuk akal untuk dilihat untuk mendeteksi overfitting adalah membandingkan kesalahan out-of-bag dengan validasi eksternal. Namun, kecuali Anda tahu tentang pengelompokan dalam data Anda, kesalahan validasi silang "sederhana" akan rentan terhadap bias optimis yang sama dengan kesalahan out-of-bag: pemisahan dilakukan sesuai dengan prinsip yang sangat mirip.
Anda harus membandingkan validasi out-of-bag atau cross dengan kesalahan untuk percobaan uji yang dirancang dengan baik untuk mendeteksi ini.
sumber
Kesalahan out-of-bag berguna, dan dapat menggantikan protokol estimasi kinerja lainnya (seperti cross-validation), tetapi harus digunakan dengan hati-hati.
Seperti validasi silang, estimasi kinerja menggunakan sampel out-of-bag dihitung menggunakan data yang tidak digunakan untuk pembelajaran. Jika data telah diproses dengan cara yang mentransfer informasi lintas sampel, estimasi akan (mungkin) menjadi bias. Contoh sederhana yang muncul di pikiran adalah melakukan pemilihan fitur atau hilangnya nilai yang hilang. Dalam kedua kasus (dan terutama untuk pemilihan fitur) data ditransformasikan menggunakan informasi dari seluruh set data, membiaskan estimasi.
sumber