Ini mungkin pertanyaan yang konyol, tetapi ketika membuat model dengan tanda sisipan dan menggunakan sesuatu seperti LOOCV
atau (bahkan lebih tepatnya) LGOCV
, apa manfaat membagi data ke dalam kereta dan set tes jika ini pada dasarnya merupakan langkah validasi silang ngomong-ngomong
Saya membaca beberapa pertanyaan terkait dan mereka menyarankan bahwa beberapa metode validasi silang (misalnya apa yang dijelaskan di sini di situs caret ) adalah untuk tujuan pemilihan fitur . Namun dalam kasus saya, saya menggunakan randomForest
( method = "rf"
) dan kernlab
( method = svmRadial
), yang tidak tercantum dalam grup yang mencoba membersihkan prediktor.
Jadi, pertanyaan saya adalah apakah saya menggunakan sesuatu seperti cross_val <- trainControl(method = "LGOCV", p = 0.8)
, bukankah itu sama dengan melatih 80% dari data saya, menguji model yang dihasilkan pada 20% sisanya, dan melakukan itu berulang-ulang untuk mendapatkan gambaran seberapa baik model bekerja?
Jika demikian, apakah ada kebutuhan untuk membagi data saya menjadi set kereta / tes?
PS Saya sebagian bertanya ketika saya sedang melakukan model pada prototipe DOE yang dihasilkan secara empiris (pikirkan barang sulit di mana kita men-tweak input dan kemudian menggunakan metode pengujian untuk mengukur berbagai atribut tentang prototipe).
Karena itu, saya tidak memiliki kumpulan data besar dengan banyak tingkat prediktor yang tumpang tindih untuk dimodelkan - kami sering menjalankan satu percobaan pada setiap titik kepentingan DOE karena pembuatan data mahal dalam kasus ini. Dengan demikian, saya ingin menggunakan semua data yang saya dapat untuk model yang akurat, tetapi ingin memeriksa di sini bahwa saya tidak kehilangan sesuatu yang jelas dan membuat model yang buruk dengan tidak memecah hal-hal.
Sunting: Menanggapi pertanyaan @ topepo, saya memodelkan atribut yang diukur secara fisik dari suatu senyawa berdasarkan penyesuaian input kimia formula. Saya tidak bisa membahas aplikasi saya yang sebenarnya, tetapi saya akan membuat contoh berdasarkan pada merumuskan cat lateks interior. Saya menjalankan eksperimen yang dirancang tempat kami memadukan 4-5 bahan kimia, mungkin bermain dengan% padatan, dan sejumlah waktu untuk memanaskan larutan polimer untuk menyesuaikan tingkat polimerisasi.
Kami kemudian dapat mengukur reologi, berat molekul, kekerasan lapisan cat, tahan air, dll.
Kami memiliki ulangan yang layak dari beberapa variabel, tetapi hanya beberapa ulangan yang benar dalam arti bahwa setiap tingkat DOE persis sama. Total kumpulan data ~ 80 pengamatan dan mungkin 4-5 adalah pengulangan yang tepat. Kami telah melakukan 15 tes yang berbeda, dan mungkin 5-6 di antaranya telah dilakukan untuk setiap pengamatan. Beberapa tanggapan hadir untuk 25-50% dari data.
Dari sini, kami ingin memodelkan efek 7 prediktor kami pada properti output dan kemudian mengoptimalkan untuk menargetkan ruang desain baru yang paling mungkin memberikan properti yang diinginkan.
(Oleh karena itu pertanyaan saya DI SINI . Setelah saya memiliki model yang terlatih, akan lebih baik untuk melakukan "membalikkan" dan memasukkan tanggapan yang diinginkan untuk mendapatkan tebakan terbaik pada tingkat input yang mungkin untuk coba berikutnya).
data_set1
, apa yang saya anggap sebagai langkah yang dilakukan olehLGOCV
validasi silang? Dari pembacaan saya, saya mengasumsikan 1)caret
beralih melalui parameter tuningdata_set1
dan kemudian 2) menahan param tersebut tetap dan 3) menciptakan "sub model" menggunakan params dari # 1 untuk setiapp = 0.8
sampeldata_set1
dan menguji prediksi pada 0,2 yang tersisa untuk mengukur akurasi. . Apakah itu ringkasan yang masuk akal?Jawaban:
Pikiran umum saya:
Jadi ketika Anda mengevaluasi model yang berbeda, Anda mungkin ingin menyetelnya, coba berbagai jenis pra-pemrosesan dll hingga Anda menemukan apa yang menurut Anda adalah model yang baik. Resampling dapat membantu memandu Anda ke arah yang benar selama proses itu.
Namun, masih ada kemungkinan over-fitting dan peluang terjadinya ini sangat dipengaruhi oleh seberapa banyak data (dan prediktor) yang Anda miliki. Jika Anda memiliki sedikit data, ada beberapa cara untuk memikirkan hal ini:
Saya jatuh ke kamp kedua tetapi yang pertama tidak salah sama sekali.
Jika Anda memiliki banyak data maka itu tidak terlalu menjadi masalah (kecuali jika Anda memiliki laju kejadian yang kecil).
Untukmu:
Anda memiliki DOE. Jenis desain akan membantu menjawab pertanyaan. Apakah Anda mencoba menginterpolasi antara titik desain atau memprediksi titik desain yang belum diuji sejauh ini?
Anda punya satu ulangan. Saya jatuh seperti hutan acak yang memukul paku dengan palu godam dan mungkin mengakibatkan over-fitting. Saya akan mencoba sesuatu yang lebih halus seperti jaringan saraf SVM atau (terkesiap).
Maks
sumber
method = "svmRadial"
. Saya berharap untuk mengevaluasi beberapa orang lain, termasukmethod = neuralnet
, meskipun dalam upaya terakhir saya menemukan jaringan saraf sangat sensitif terhadap `set.seed (). Singkatnya, kami mencoba untuk 1) lebih memahami hubungan antara input / beberapa respons dan 2) membuat tebakan terbaik di ruang desain yang paling mungkin untuk menghasilkan properti yang diinginkan sehingga kami dapat menjalankan DOE baru yang lebih terfokus vs yang lebih khas pendekatan ekspansif / shotgun dalam hal input level min / maks untuk dicoba.