Saya memiliki randomForest
model klasifikasi yang baik yang ingin saya gunakan dalam aplikasi yang memprediksi kelas kasus baru. Kasing baru memiliki nilai yang pasti hilang. Prediksi tidak akan berfungsi seperti itu untuk NAS. Bagaimana saya harus melakukan ini?
data(iris)
# create first the new case with missing values
na.row<-45
na.col<-c(3,5)
case.na<-iris[na.row,]
case.na[,na.col]<-NA
iris.rf <- randomForest(Species ~ ., data=iris[-na.row,])
# print(iris.rf)
myrf.pred <- predict(iris.rf, case.na[-5], type="response")
myrf.pred
[1] <NA>
Saya mencoba missForest
. Saya menggabungkan data asli dan case baru, mengocoknya dengan missForest
, dan mendapatkan nilai imputasi untuk NAS dalam case baru saya. Komputasi terlalu berat.
data.imp <- missForest(data.with.na)
Tetapi harus ada cara untuk menggunakan rf-model untuk memprediksi kasus baru dengan nilai yang hilang, kan?
randomForest
paket di R hanya memiliki metode imputasi yang Anda gambarkan. Jika Anda ingin tetap berada di lingkungan yang sama,gbm
memiliki metode yang agak halus untuk menangani nilai yang hilang dalam data baru (itu tidak sempurna, tetapi bermanfaat).party
kerja paket dengan NAS pada set tes? Saya tidak dapat menemukan jejak penerapan dalamparty
manual atau contoh.Jawaban:
Anda tidak punya pilihan selain menyalahkan nilai atau mengubah model. Pilihan yang bagus bisa berupa output dalam paket Hmisc. Saya pikir itu kurang berat daripada rfimpute yang merupakan apa yang menahan Anda, contoh paket pertama (ada yang lain):
Anda menyebutkan bahwa Anda memiliki banyak pengamatan baru yang memiliki nilai yang hilang pada variabel independen. Meskipun Anda memiliki banyak kasus seperti ini, jika untuk setiap pengamatan baru hanya ada satu atau dua variabel yang hilang dan jumlah variabel Anda tidak kecil, mungkin hanya mengisi lubang dengan median atau rata-rata (apakah terus menerus?) bisa bekerja.
Hal lain yang mungkin menarik adalah melakukan analisis kepentingan variabel minor. Implementasi R hutan acak menghitung dua langkah penting dan plot masing-masing:
Dan Anda dapat bermain-main hanya dengan memasukkan variabel "penting" dalam pelatihan model, hingga akurasi prediksi tidak terlalu terpengaruh dibandingkan dengan "model penuh". Mungkin Anda menyimpan variabel dengan jumlah kesalahan yang rendah. Ini bisa membantu Anda mengurangi ukuran masalah Anda.
sumber