Saya sangat suka caret karena kemampuan penyetelan parameter dan antarmuka yang seragam, tetapi saya telah mengamati bahwa selalu membutuhkan set data lengkap (yaitu tanpa NAS) bahkan jika model "telanjang" yang diterapkan memungkinkan NAs. Itu sangat merepotkan, mengingat seseorang harus menerapkan metode imputasi kerja, yang pada awalnya tidak diperlukan. Bagaimana seseorang bisa menghindari tuduhan dan masih menggunakan keunggulan caret?
r
missing-data
data-imputation
caret
Fredrik
sumber
sumber
Jawaban:
Untuk fungsi kereta di caret, Anda dapat melewatkan parameter na.action = na.pass, dan tanpa preprocessing (jangan tentukan preProcess, biarkan sebagai nilai default NULL). Ini akan meneruskan nilai-nilai NA yang tidak dimodifikasi secara langsung ke fungsi prediksi (ini akan menyebabkan fungsi prediksi yang tidak mendukung nilai-nilai yang hilang gagal, bagi mereka Anda perlu menentukan preProcess untuk menghitung nilai-nilai yang hilang sebelum memanggil fungsi prediksi). Sebagai contoh:
Dalam hal ini, C5.0 akan menangani nilai yang hilang dengan sendirinya.
sumber
train
memilikina.action = na.pass
set opsi akan menyebabkan kesalahan berikut:Something is wrong; all the RMSE metric values are missing
Sudahkah Anda mencoba pengodean ulang NAS? Sesuatu> 3 standar deviasi di luar data Anda (misalnya -12345) harus mendorong C5.0 untuk memprediksi secara terpisah, seperti halnya dengan NAS.
sumber
Saya pikir solusi Anda akan menyalahkan nilai-nilai saat menggunakan fungsi predict () .
Lihat
?predict.train
untuk lebih jelasnya.Anda dapat menggunakan
na.omit
agar tanda sisipan untuk menilai nilai. Sebagai contoh:dari http://www.inside-r.org/packages/cran/caret/docs/predict.train
Solusi lain adalah menyalahkan saat preprocessing data:
dari http://www.inside-r.org/node/86978
sumber