Teknik untuk Menangani Data Tidak Lengkap / Hilang

12

Pertanyaan saya diarahkan pada teknik untuk menangani data yang tidak lengkap selama pengklasifikasi / pelatihan model / pemasangan.

Misalnya, dalam dataset dengan beberapa ratus baris, setiap baris memiliki misalkan lima dimensi dan label kelas sebagai item terakhir, sebagian besar titik data akan terlihat seperti ini:

[0.74, 0.39, 0.14, 0.33, 0.34, 0]

Beberapa mungkin terlihat seperti ini:

[0,21, 0,68,?, 0,82, 0,58, 1]

Jadi jenis-jenis titik data itulah yang menjadi fokus dari Pertanyaan ini.

Alasan awal saya untuk mengajukan pertanyaan ini adalah masalah langsung di depan saya; namun, sebelum memposting Pertanyaan saya, saya pikir mungkin akan lebih berguna jika saya mengutarakannya kembali sehingga jawaban akan bermanfaat bagi sebagian besar Komunitas.

Sebagai heuristik sederhana, mari kita bagi teknik-teknik penanganan data ini berdasarkan pada kapan selama aliran pemrosesan yang digunakan - sebelum input ke pengklasifikasi atau selama (yaitu, teknik berada di dalam pengklasifikasi).

Contoh terbaik yang dapat saya pikirkan untuk yang terakhir adalah teknik 'percabangan tiga arah' yang cerdas yang digunakan dalam Pohon Keputusan.

Tidak diragukan lagi, kategori sebelumnya jauh lebih besar. Teknik yang saya sadari semua termasuk dalam salah satu grup di bawah ini.

Saat baru-baru ini meninjau catatan pribadi saya tentang "penanganan data yang hilang" saya perhatikan bahwa saya memiliki daftar teknik yang cukup mengesankan. Saya hanya menyimpan catatan ini untuk ketenangan pikiran dan seandainya seorang kolega junior bertanya kepada saya bagaimana menangani data yang hilang. Dalam praktik sebenarnya, saya tidak benar-benar menggunakannya, kecuali yang terakhir.

  1. Imputasi : rubrik luas untuk serangkaian teknik yang denominator umumnya (saya percaya) adalah bahwa data yang hilang dipasok langsung oleh set data yang sama - substitusi alih-alih estimasi / prediksi.

  2. Rekonstruksi : memperkirakan titik data yang hilang menggunakan jaringan asosiasi otomatis (hanya jaringan saraf di mana ukuran lapisan input dan output sama - dengan kata lain, output memiliki dimensi yang sama dengan input); ide di sini adalah untuk melatih jaringan ini pada data yang lengkap, kemudian memberinya pola yang tidak lengkap, dan membaca nilai yang hilang dari node output.

  3. Bootstrapping : (tidak perlu ringkasan, saya tidak boleh berpikir, mengingat itu digunakan di tempat lain dalam analisis statistik).

  4. Penolakan : hapus dengan tenang poin data dengan elemen yang hilang / rusak dari set pelatihan Anda dan berpura-puralah mereka tidak pernah ada.

doug
sumber
2
Ada juga pendekatan "model dikurangi" di mana Anda melatih classifier untuk setiap pola nilai yang hilang yang ditemukan selama pengujian. IE, untuk membuat prediksi untuk x di mana atribut ke-5 tidak ada, hapus atribut ke-i dari semua instance data pelatihan dan latihlah untuk itu. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Yaroslav Bulatov
Saya yakin definisi Imputation Anda salah dalam konteks modern. Imputasi sekarang melibatkan pemodelan data yang hilang berdasarkan variabel lain dari kumpulan data. Metode Imputasi yang saat ini disukai adalah Multiple Imputation, yang menghasilkan beberapa alternatif untuk setiap nilai yang hilang (berdasarkan model), memproses setiap alternatif set data yang diselesaikan, dan kemudian menggabungkan jawaban yang mencerminkan variabilitas antara hasil. (Di "masa lalu", orang-orang melakukan hal-hal seperti mengganti nilai dari catatan yang sama, atau nilai rata-rata, dll, tetapi tidak sekarang.)
Wayne
@Wayne, apakah Anda akan berbaik hati mengarahkan saya ke makalah yang menjelaskan modernteknik - teknik ini ? Terima kasih
Enzo
Paket R micememiliki makalah pengantar yang bagus tentang JSS: jstatsoft.org/article/view/v045i03 . (Anda harus menemukan pengantar bermanfaat, bahkan jika Anda tidak menggunakan R.) Dan paket R Ameliamemiliki sketsa bagus yang disertakan dengan paket. Kedua paket ini berbeda dalam detailnya, tetapi keduanya menggunakan imputasi ganda.
Wayne

Jawaban:

3

Saya memberikan jawaban ini untuk pertanyaan lain , tetapi mungkin juga berlaku di sini.

"Ada bidang penelitian yang cukup baru yang disebut Matrix Completion , yang mungkin melakukan apa yang Anda inginkan. Pengantar yang sangat bagus diberikan dalam kuliah ini oleh Emmanuel Candes"

Pada dasarnya, jika dataset Anda memiliki peringkat rendah (atau kira-kira peringkat rendah) yaitu Anda memiliki 100 baris, tetapi matriks sebenarnya memiliki peringkat kecil, katakan 10 (atau hanya 10 nilai tunggal besar), maka Anda dapat menggunakan Penyelesaian Matriks untuk mengisi yang hilang data.

Robby McKilliam
sumber
2

Saya mungkin sedikit tidak ortodoks di sini, tapi apa-apaan ini. Harap dicatat: garis pemikiran ini berasal dari filosofi saya sendiri untuk klasifikasi, yaitu bahwa saya menggunakannya ketika tujuan saya tepat pada prediksi murni - bukan penjelasan, koherensi konseptual, dll. Jadi, apa yang saya katakan di sini bertentangan dengan bagaimana saya akan membangun model regresi.

Pendekatan klasifikasi yang berbeda bervariasi dalam kemampuan mereka untuk menangani data yang hilang, dan tergantung pada beberapa faktor lain ^, saya mungkin hanya mencoba # 5: menggunakan classifier yang tidak akan tersedak pada NAs tersebut. Bagian dari keputusan untuk menempuh rute itu mungkin juga termasuk memikirkan tentang seberapa besar kemungkinan proporsi NAS yang serupa akan terjadi dalam data masa depan yang akan Anda terapkan dalam model. Jika NAS untuk variabel-variabel tertentu akan setara untuk kursus, maka mungkin masuk akal untuk hanya bergabung dengan mereka (yaitu, jangan membangun model prediksi yang mengasumsikan lebih banyak data informatif daripada apa yang sebenarnya Anda miliki, atau Anda ' akan bercanda sendiri tentang bagaimana prediksi itu akan benar-benar terjadi). Bahkan, jika saya tidak yakin bahwa NAS hilang secara acak, saya akan cenderung untuk mengkode ulang variabel baru (atau tingkat baru jika itu '

Jika saya memiliki alasan yang baik untuk menggunakan classifier yang tidak mengambil data yang hilang dengan sangat baik, maka pendekatan saya akan menjadi # 1 (beberapa imputasi), mencari untuk menemukan model klasifikasi yang berperilaku sama baiknya di seluruh set data yang diimputasi.

^ Termasuk: berapa banyak kekurangan yang Anda miliki dalam prediktor Anda, apakah ada pola sistematis (jika ada, ada baiknya melihat lebih dekat dan memikirkan implikasi untuk analisis Anda), dan berapa banyak data yang harus Anda kerjakan dengan keseluruhan .

Shelby
sumber
1

Jika Anda memiliki firasat yang masuk akal tentang proses menghasilkan data yang bertanggung jawab untuk data yang dimaksud maka Anda dapat menggunakan ide bayesian untuk memperkirakan data yang hilang. Di bawah pendekatan bayesian Anda hanya akan mengasumsikan bahwa data yang hilang juga variabel acak dan membangun posterior untuk data yang hilang tergantung pada data yang diamati. Cara posterior kemudian akan digunakan sebagai pengganti data yang hilang.

Penggunaan model bayesian mungkin memenuhi syarat sebagai imputasi di bawah pengertian yang luas dari istilah ini tetapi saya berpikir untuk menyebutkannya karena tidak muncul dalam daftar Anda.


sumber