Penggunaan validasi silang bersarang

14

Halaman Scikit Learn pada Seleksi Model menyebutkan penggunaan validasi silang bersarang:

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

Dua loop validasi silang dilakukan secara paralel: satu oleh estimator GridSearchCV untuk mengatur gamma dan yang lainnya oleh cross_val_score untuk mengukur kinerja prediksi estimator. Skor yang dihasilkan adalah estimasi yang tidak bias dari skor prediksi pada data baru.

Dari apa yang saya mengerti, clf.fitakan menggunakan validasi silang secara native untuk menentukan gamma terbaik. Dalam hal itu, mengapa kita perlu menggunakan nested cv seperti yang diberikan di atas? Catatan tersebut menyebutkan bahwa nested cv menghasilkan "perkiraan tidak bias" dari skor prediksi. Bukankah itu juga masalahnya clf.fit?

Juga, saya tidak bisa mendapatkan perkiraan terbaik dari cross_validation.cross_val_score(clf, X_digits, y_digits)prosedur. Bisakah Anda memberi saran bagaimana itu bisa dilakukan?

xbsd
sumber

Jawaban:

18

Validasi silang bersarang digunakan untuk menghindari estimasi kinerja yang bias secara optimis yang dihasilkan dari menggunakan validasi silang yang sama untuk mengatur nilai-nilai hiper-parameter model (misalnya parameter regularisasi, parameter , dan parameter kernel dari SVM) dan estimasi kinerja. Saya menulis makalah tentang topik ini setelah agak khawatir dengan besarnya bias yang diperkenalkan oleh jalan pintas yang tampaknya jinak yang sering digunakan dalam evaluasi mesin kernel. Saya menyelidiki topik ini untuk mengetahui mengapa hasil saya lebih buruk daripada kelompok penelitian lain yang menggunakan metode serupa pada dataset yang sama, alasannya adalah karena saya menggunakan validasi silang bersarang dan karenanya tidak mendapat manfaat dari bias optimis.C

GC Cawley dan NLC Talbot, Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja, Journal of Machine Learning Research, 2010. Penelitian, vol. 11, hlm. 2079-2107, Juli 2010. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf )

Alasan bias dengan contoh ilustratif dan evaluasi eksperimental dapat ditemukan di makalah, tetapi intinya adalah bahwa jika kriteria evaluasi kinerja digunakan dengan cara apa pun untuk membuat pilihan tentang model, maka pilihan tersebut didasarkan pada (i) perbaikan asli dalam kinerja generalisasi dan (ii) kekhasan statistik sampel data tertentu di mana kriteria evaluasi kinerja dievaluasi. Dengan kata lain, bias muncul karena dimungkinkan (terlalu mudah) untuk menyesuaikan kesalahan validasi silang saat menyetel parameter hiper.

Dikran Marsupial
sumber
5

Dengan set uji yang diadakan clf.fitmenghasilkan satu perkiraan yang tidak bias sedangkan validasi silang bersarang dengan cross_val_scoremenghasilkan beberapa perkiraan yang tidak bias. Keuntungan dari validasi silang bersarang adalah penilaian yang lebih baik dari kinerja sebenarnya menggunakan data yang belum dilihat algoritma. Penilaian yang lebih baik karena Anda mendapatkan, misalnya, tiga skor tes dengan cv bersarang bukan hanya satu.

Jawaban untuk pertanyaan kedua Anda mengenai perkiraan terbaik adalah bahwa saat ini (v0.14) tidak mungkin untuk mendapatkan parameter dari model yang dipasang menggunakan nested cv cross_val_score. Lihat jawaban saya di sini dengan sebuah contoh.

tobip
sumber