Bermain-main dengan Boston Housing Dataset dan RandomForestRegressor
(parameter w / default) di scikit-belajar, saya melihat sesuatu yang aneh: skor validasi silang menurun ketika saya meningkatkan jumlah lipatan di atas 10. Strategi validasi silang saya adalah sebagai berikut:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... di mana num_cvs
bervariasi. Saya mengatur test_size
untuk 1/num_cvs
mencerminkan perilaku kereta / uji split ukuran k-fold CV. Pada dasarnya, saya menginginkan sesuatu seperti CV k-fold, tetapi saya juga membutuhkan keacakan (karenanya ShuffleSplit).
Percobaan ini diulang beberapa kali, dan skor rata-rata dan standar deviasi kemudian diplot.
(Perhatikan bahwa ukuran k
ditunjukkan oleh luas lingkaran; standar deviasi ada pada sumbu Y.)
Secara konsisten, peningkatan k
(dari 2 menjadi 44) akan menghasilkan peningkatan skor singkat, diikuti dengan penurunan yang stabil seiring k
peningkatan lebih lanjut (melampaui ~ 10 kali lipat)! Jika ada, saya akan mengharapkan lebih banyak data pelatihan untuk mengarah pada peningkatan skor kecil!
Memperbarui
Mengubah kriteria penilaian berarti kesalahan mutlak menghasilkan perilaku yang saya harapkan: skor meningkat dengan peningkatan jumlah lipatan dalam K-fold CV, daripada mendekati 0 (seperti dengan default, ' r2 '). Pertanyaannya tetap mengapa metrik penilaian standar menghasilkan kinerja yang buruk di kedua metrik rata-rata dan STD untuk peningkatan jumlah lipatan.