Saya mencoba mengembangkan model prediksi menggunakan data klinis dimensi tinggi termasuk nilai-nilai laboratorium. Ruang data jarang dengan sampel 5k dan 200 variabel. Idenya adalah untuk memberi peringkat variabel menggunakan metode pemilihan fitur (IG, RF dll) dan menggunakan fitur peringkat teratas untuk mengembangkan model prediksi.
Sementara pemilihan fitur berjalan baik dengan pendekatan Naïve Bayes, saya sekarang menghadapi masalah dalam menerapkan model prediktif karena data yang hilang (NA) di ruang variabel saya. Apakah ada algoritma pembelajaran mesin yang dapat dengan hati-hati menangani sampel dengan data yang hilang?
machine-learning
missing-data
Khader Shameer
sumber
sumber
Jawaban:
Itu tergantung pada model yang Anda gunakan. Jika Anda menggunakan beberapa model generatif, maka ada cara berprinsip untuk menangani nilai yang hilang (). Misalnya dalam model seperti Naive Bayes atau Gaussian Processes Anda akan mengintegrasikan variabel yang hilang, dan memilih opsi terbaik dengan variabel yang tersisa.
Untuk model-model diskriminatif itu lebih rumit, karena itu tidak mungkin. Ada sejumlah pendekatan. Gharamani dan Jordan menggambarkan pendekatan berprinsip, di mana nilai-nilai yang hilang diperlakukan seperti variabel tersembunyi, dan varian dari algoritma EM digunakan untuk memperkirakannya. Dengan cara yang sama, Smola et al. menjelaskan varian dari algoritma SVM yang secara eksplisit menangani masalah.
Perhatikan bahwa sering disarankan untuk mengganti nilai yang hilang dengan nilai rata-rata variabel. Ini bermasalah, seperti yang dijelaskan dalam makalah pertama. Kadang-kadang, saya menemukan makalah yang melakukan regresi pada variabel untuk memperkirakan nilai yang hilang, tetapi saya tidak bisa mengatakan apakah itu berlaku untuk kasus Anda.
sumber
R-package randomForestSRC, yang mengimplementasikan hutan acak Breiman, menangani data yang hilang untuk kelas analisis yang luas (regresi, klasifikasi, kelangsungan hidup, risiko bersaing, tanpa pengawasan, multivariat).
Lihat posting berikut:
Mengapa Random Forest tidak menangani nilai yang hilang dalam prediktor?
sumber
Coba imputasi menggunakan tetangga terdekat untuk menghilangkan data yang hilang.
Selain itu, paket Caret memiliki antarmuka ke berbagai algoritma dan semuanya datang dengan metode prediksi dalam R yang dapat digunakan untuk memprediksi data baru. Metrik kinerja juga dapat diperkirakan menggunakan validasi k-fold cross menggunakan paket yang sama.
sumber
Ada juga algoritma yang dapat menggunakan nilai yang hilang sebagai nilai unik dan berbeda ketika membangun model prediktif, seperti pohon klasifikasi dan regresi. seperti xgboost
sumber
lightgbm dapat menangani NaNs dari kotak ( http://lightgbm.readthedocs.io/en/latest/ ).
sumber