Menghitung rasio data sampel yang digunakan untuk pemasangan / pelatihan model dan validasi

9

Memberikan ukuran sampel "N" yang saya rencanakan untuk digunakan untuk meramalkan data. Apa sajakah cara untuk membagi data sehingga saya menggunakan sebagian untuk membuat model, dan data sisanya untuk memvalidasi model?

Saya tahu tidak ada jawaban hitam dan putih untuk ini, tetapi akan menarik untuk mengetahui beberapa "aturan praktis" atau biasanya menggunakan rasio. Saya tahu di universitas, salah satu profesor kami dulu mengatakan model 60% dan validasi 40%.

dassouki
sumber

Jawaban:

7

Seperti yang Anda katakan tidak ada jawaban hitam putih. Saya biasanya tidak membagi data menjadi 2 bagian tetapi menggunakan metode seperti k-fold cross validation.

Dalam validasi silang k-fold Anda membagi data Anda secara acak menjadi bagian k dan menyesuaikan model Anda pada bagian k-1 dan menguji kesalahan pada bagian yang ditinggalkan. Anda ulangi proses k kali meninggalkan setiap bagian tidak pas satu per satu. Anda dapat mengambil kesalahan rata-rata dari setiap iterasi sebagai indikasi kesalahan model. Ini bekerja sangat baik jika Anda ingin membandingkan kekuatan prediksi model yang berbeda.

Salah satu bentuk ekstrim dari validasi silang k-fold adalah validasi silang umum di mana Anda hanya meninggalkan satu titik data untuk pengujian dan menyesuaikan model dengan semua titik yang tersisa. Kemudian ulangi proses n kali meninggalkan setiap titik data satu per satu. Saya biasanya lebih suka validasi k-fold lintas daripada validasi lintas umum ... hanya pilihan pribadi

Shrey
sumber
2
CV menggunakan set lengkap untuk pemilihan model, ya? Ini adalah kesalahan umum (bahkan Wikipedia menyebutkannya), karena itu adalah pakaian yang tersembunyi. Anda perlu membuat CV tingkat yang lebih tinggi atau meninggalkan beberapa tes untuk melakukan ini dengan benar.
5

Ini benar-benar tergantung pada jumlah data yang Anda miliki, biaya spesifik metode dan bagaimana Anda ingin hasilnya.

Beberapa contoh:

Jika Anda memiliki sedikit data, Anda mungkin ingin menggunakan validasi silang (k-fold, leave-one-out, dll.) Model Anda mungkin tidak akan mengambil banyak sumber daya untuk dilatih dan diuji. Ini adalah cara yang baik untuk mendapatkan hasil maksimal dari data Anda

Anda memiliki banyak data: Anda mungkin ingin mengambil set tes yang cukup besar, memastikan bahwa akan ada sedikit kemungkinan bahwa beberapa sampel aneh akan memberikan banyak variasi pada hasil Anda. Berapa banyak data yang harus Anda ambil? Itu sepenuhnya tergantung pada data dan model Anda. Sebagai contoh, dalam pengenalan ucapan, jika Anda mengambil terlalu banyak data (misalkan 3000 kalimat), percobaan Anda akan memakan waktu berhari-hari, karena faktor waktu nyata 7-10 adalah umum. Jika Anda mengambil terlalu sedikit, itu terlalu tergantung pada speaker yang Anda pilih (yang tidak diizinkan dalam set pelatihan).

Ingat juga, dalam banyak kasus itu baik untuk memiliki set validasi / pengembangan juga!

Peter Smit
sumber
5

Tes 1:10: rasio kereta populer karena kelihatannya bundar, 1: 9 populer karena CV 10 kali lipat, 1: 2 populer karena juga bulat dan memasang kembali bootstrap. Kadang-kadang seseorang mendapat tes dari beberapa kriteria khusus data, misalnya tahun lalu untuk pengujian, bertahun-tahun sebelumnya untuk pelatihan.

Aturan umumnya adalah seperti itu: kereta harus cukup besar sehingga akurasi tidak akan turun secara signifikan, dan tes harus cukup besar untuk membungkam fluktuasi acak.

Tetap saya lebih suka CV, karena memberi Anda juga distribusi kesalahan.


sumber
4

Sebagai perpanjangan pada jawaban k-fold, pilihan "biasa" k adalah 5 atau 10. Metode cuti-satu-keluar memiliki kecenderungan untuk menghasilkan model yang terlalu konservatif. FYI, ini referensi tentang fakta itu:

Shao, J. (1993), Seleksi Model Linear oleh Cross-Validation, Journal of American Statistics Association, Vol. 88, No. 422, hlm. 486-494

Albort
sumber
Apakah Anda pernah membaca makalah ini? Namun demikian itu hanya berfungsi untuk model linier (bahkan judulnya menunjukkan itu!) Itu adalah tentang perilaku asimptotik untuk jumlah objek yang tak terbatas. Cara 100 tidak cukup.
1
Dan saya berharap Anda beruntung membuat validasi silang 10 kali lipat pada set dengan 9 objek.
@ MBB: Saya mengatakan pilihan "biasa". Tidak berarti setiap pilihan
Albort
@ mbq: Saya telah membaca koran; Shao melaporkan studi simulasi dengan hanya 40 pengamatan, dan menunjukkan bahwa LOOCV kinerjanya buruk di Monte-Carlo CV kecuali dalam kasus di mana tidak ada subseleksi yang sesuai (set fitur lengkap adalah optimal). 100 jauh lebih dari cukup, setidaknya untuk pemilihan bagian dalam model linier.
shabbychef
@shabbychef Anda punya saya di sini; argumen kedua dalam komentar pertama saya tentu saja adalah sampah, saya memiliki beberapa karya lain dalam pikiran dan digeneralisasikan secara berlebihan. Namun demikian, saya masih akan berpendapat bahwa makalah Shao bukan referensi yang baik untuk umum "LOO gagal untuk N besar" karena cakupannya dikurangi menjadi model linier.