Bagaimana cara validasi silang keluar satu kali bekerja? Bagaimana cara memilih model akhir dari model yang berbeda?

25

Saya memiliki beberapa data dan saya ingin membangun model (katakanlah model regresi linier) dari data ini. Pada langkah berikutnya, saya ingin menerapkan Validasi Cuti-Sekali-Keluar (LOOCV) pada model jadi lihat seberapa bagus kinerjanya.

Jika saya mengerti LOOCV benar, saya membangun model baru untuk setiap sampel saya (set tes) menggunakan setiap sampel kecuali sampel ini (set pelatihan). Kemudian saya menggunakan model untuk memprediksi set tes dan menghitung kesalahan .(predictedactual)

Pada langkah berikutnya saya mengumpulkan semua kesalahan yang dihasilkan menggunakan fungsi yang dipilih, misalnya rata-rata kesalahan kuadrat. Saya dapat menggunakan nilai-nilai ini untuk menilai kualitas (atau goodness of fit) model.

Pertanyaan: Model mana yang merupakan model nilai-nilai ini berlaku, jadi model mana yang harus saya pilih jika saya menemukan metrik yang dihasilkan dari LOOCV sesuai untuk kasus saya? LOOCV melihat model yang berbeda (di mana n adalah ukuran sampel); model mana yang harus saya pilih?nnn

  • Apakah model yang menggunakan semua sampel? Model ini tidak pernah dihitung selama proses LOOCV!
  • Apakah model yang memiliki kesalahan paling sedikit?
theomega
sumber
Terkait: stats.stackexchange.com/questions/11602 .
Amoeba berkata Reinstate Monica

Jawaban:

24

Yang terbaik adalah memikirkan validasi silang sebagai cara memperkirakan kinerja generalisasi model yang dihasilkan oleh prosedur tertentu, daripada model itu sendiri. Leave-one-out cross-validation pada dasarnya adalah perkiraan kinerja generalisasi dari model yang dilatih pada sampel data, yang umumnya merupakan perkiraan yang agak pesimistis terhadap kinerja model yang dilatih pada sampel.nn1n

Daripada memilih satu model, hal yang harus dilakukan adalah menyesuaikan model dengan semua data, dan menggunakan LOO-CV untuk memberikan perkiraan yang sedikit konservatif dari kinerja model itu.

Namun perlu dicatat bahwa LOOCV memiliki varian yang tinggi (nilai yang akan Anda dapatkan sangat bervariasi jika Anda menggunakan sampel data acak yang berbeda) yang sering menjadikannya pilihan penaksir yang buruk untuk evaluasi kinerja, walaupun perkiraannya hampir tidak bias. Saya menggunakannya sepanjang waktu untuk pemilihan model, tetapi benar-benar hanya karena murah (hampir gratis untuk model kernel yang saya kerjakan).

Dikran Marsupial
sumber
Terima kasih atas jawabannya. Bukankah kalimat "menggunakan LOO-CV untuk memberikan perkiraan yang sedikit konservatif dari kinerja model itu." yang salah adalah kasus umum? Modelnya mungkin semakin buruk jika saya menambahkan poin lain, dalam hal ini LOO-CV mungkin menjadi. perkiraan optimis
theomega
1
Semakin banyak data yang Anda gunakan untuk membangun model, umumnya model akan semakin baik. Sementara poin tambahan mungkin membuat model sedikit lebih buruk, itu lebih cenderung membuat model sedikit lebih baik. Jadi secara umum loocv memiliki sedikit bias pesimis, tetapi hanya sangat sedikit, varian penduga LOOCV biasanya merupakan pertimbangan yang jauh lebih besar.
Dikran Marsupial
Apa yang harus Anda gunakan untuk evaluasi kinerja? (Menganggap pengumpulan data mahal sehingga Anda ingin menggunakan semua data yang tersedia agar sesuai dengan model).
Sonton Bob
Bootstrap mungkin. Sebagian besar model yang saya gunakan memiliki parameter regularisasi dll. Yang perlu disetel, jadi saya sering menggunakan LOOCV untuk menyetel model dan bootstrap atau tahan berulang untuk evaluasi kinerja.
Dikran Marsupial
@DikranMarsupial Apakah Anda yakin tentang fakta bahwa Leave-One-Out CV memberikan bias pesimistis? Sejauh yang saya tahu, itu biasanya memberikan perkiraan kesalahan lebih rendah dari K-Fold, misalnya. Juga, Bukankah LOOCV memiliki 0 varians? Anda hanya dapat melakukan LOOCV sekali, lalu "Anda kehabisan sampel". Satu-satunya varian yang dapat saya pikirkan adalah yang dihasilkan oleh algoritma pelatihan yang digunakan agar sesuai dengan model. Tetapi ini harus varians terkait dengan varians parameter optimal, bukan dengan kesalahan model itu sendiri. Terima kasih.
D1X