Apakah ada cara untuk menonaktifkan fitur penyetelan parameter (kisi) di CARET?

15

CARET akan secara otomatis menggunakan tuning grid yang telah ditentukan sebelumnya untuk membangun berbagai model sebelum memilih model akhir, dan kemudian melatih model akhir pada data pelatihan lengkap. Saya bisa menyediakan tuning grid saya sendiri hanya dengan satu kombinasi parameter. Namun bahkan dalam kasus ini, CARET "memilih" model terbaik di antara parameter tuning (meskipun hanya ada satu dalam kasus ini), dan kemudian cocok dengan model akhir untuk semua data pelatihan. Ini adalah langkah ekstra yang ingin saya hindari.

Bagaimana cara saya melewatkan langkah pencarian model di seluruh variasi dalam tuning grid dan memaksa CARET untuk membangun semua data pelatihan (selain memanggil perpustakaan model yang mendasarinya secara langsung)?

Ram Ahluwalia
sumber
1
Pertanyaannya agak tidak jelas, yang mungkin menjelaskan mengapa Anda telah menerima balasan menjawab pertanyaan yang berbeda, yaitu 1) Bagaimana cara saya memberitahu caret untuk melewati validasi model DAN penyetelan? dan 2) Bagaimana cara mematikan hanya penyetelan model?
Johan Larsson

Jawaban:

17

Anda dapat menentukan method="none"di trainControl. Sebagai contoh:

train(Species ~ ., data=iris, method="rf", tuneGrid=data.frame(mtry=3),
  trControl=trainControl(method="none"))

Saya tidak yakin kapan ini diterapkan.

Peyton
sumber
9

Cara terbaik adalah dengan secara eksplisit memasok dataframe tuneGrid. Sebagai contoh, forest acak hanya memiliki satu parameter tuning, 'mtry', yang mengontrol jumlah fitur yang dipilih untuk setiap pohon.

Untuk menetapkan mtry pada nilai tertentu, Anda dapat memilih default randomForest (? RandomForest) lakukan ini:

model <- train(x = X, y = Y, method = 'rf', tuneGrid = data.frame(.mtry = M))

di mana M adalah nilai satu dari parameter tuning yang ingin Anda gunakan.

untuk beberapa parameter penyetelan, lakukan ini:

tuneGrid = data.frame(.par1 = P1, .par2 = P2, .par3 = P3)
Brent
sumber
Selamat datang di situs kami, Brent! Terima kasih telah menindaklanjuti dengan pertanyaan lama ini.
whuber
4
Saran di bawah method="none"ini adalah solusi yang lebih baik.
topepo
1

Saya tidak berpikir itu mungkin (setidaknya itu tidak mungkin pada beberapa versi yang lalu). Seseorang dapat mengurangi dampak kinerja dengan menyiapkan hanya satu partisi resampling dalam data pelatihan (tetapi caret masih akan melatih model dua kali)

Ini kedengarannya seperti fitur yang berguna untuk dimiliki, jadi saya akan melakukan ping ke pembuat paket.

Yevgeny
sumber
Maaf jawaban ini sudah usang sekarang
smci