Klasifikasi dengan sebagian data "tidak dikenal"


11

Misalkan saya ingin mempelajari classifier yang mengambil vektor angka sebagai input, dan memberikan label kelas sebagai output. Data pelatihan saya terdiri dari sejumlah besar pasangan input-output.

Namun, ketika saya datang untuk menguji beberapa data baru, data ini biasanya hanya sebagian yang lengkap. Misalnya jika vektor input panjangnya 100, hanya 30 elemen yang dapat diberi nilai, dan sisanya "tidak diketahui".

Sebagai contohnya, pertimbangkan pengenalan gambar di mana diketahui bahwa bagian dari gambar tersumbat. Atau pertimbangkan klasifikasi dalam pengertian umum di mana diketahui bahwa sebagian data rusak. Dalam semua kasus, saya tahu persis elemen mana dalam vektor data yang merupakan bagian yang tidak diketahui.

Saya bertanya-tanya bagaimana saya bisa belajar classifier yang akan bekerja untuk data seperti ini? Saya hanya bisa mengatur elemen "tidak dikenal" ke angka acak, tetapi mengingat bahwa seringkali ada lebih banyak elemen yang tidak diketahui daripada yang diketahui, ini tidak terdengar seperti solusi yang baik. Atau, saya bisa secara acak mengubah elemen dalam data pelatihan menjadi "tidak diketahui", dan berlatih dengan ini daripada data lengkap, tetapi ini mungkin memerlukan pengambilan sampel lengkap dari semua kombinasi elemen yang diketahui dan tidak diketahui.

Secara khusus saya berpikir tentang jaringan saraf, tetapi saya terbuka untuk pengklasifikasi lain.

Ada ide? Terima kasih!


en.m.wikipedia.org/wiki/Missing_data mungkin merupakan tempat untuk memulai.
Hatshepsut

Saya pikir pembelajaran semi-diawasi lebih merupakan kasus di mana data pelatihan tidak sepenuhnya diberi label. Dalam kasus saya, semua data pelatihan saya diberi label, tetapi setiap bagian dari data uji "tidak diketahui".
Karnivaurus

Pembelajaran Semi-Supervisi dengan Ladder Networks: github.com/CuriousAI/ladder
itdxer

Jawaban:


2

Saya pikir ada cara yang masuk akal untuk membuatnya bekerja dengan Neural Networks.

p

Saya belum pernah melihat itu dilakukan sebelumnya tetapi ini akan sangat mirip dengan melakukan Dropout (metode regularisasi terkenal di Neural Networks) di neuron input Anda, bukan neuron yang tersembunyi. Saya tidak berpikir itu ide yang baik untuk melakukannya secara umum, tetapi jika Anda dipaksa (seperti kasus Anda), setidaknya itu cukup dekat secara teoritis dengan sesuatu yang diketahui bekerja.


1

Saya pikir ada beberapa pilihan yang berfungsi dengan pengklasifikasi:

  • Menanamkan nilai yang hilang dengan nilai tunggal, seperti rata-rata atau median dari set pelatihan atau nilai yang diprediksi dari bagian yang diamati dari input, atau hanya menggunakan angka acak atau konstanta.
  • Gunakan beberapa nilai yang berbeda untuk yang tidak diketahui dan agregat hasilnya, mis. Rata-rata

Selain itu Anda bisa menggunakan pengklasifikasi berbasis pohon (misalnya hutan acak) dan jika pohon perlu mengevaluasi pemisahan pada fitur yang hilang, itu bisa saja meneruskan data ke kedua node anak.

p(x,y)xyxxdan rata-rata hasil yang ditimbang dengan probabilitas imputasi itu. Hal ini dapat dilakukan baik secara analitik dalam bentuk tertutup untuk beberapa pengklasifikasi, misalnya model Analisis Diskriminan Linier, atau kira-kira dengan mengambil sampel yang tidak diketahui, misalnya untuk Mesin Boltzmann Terbatas atau varian mendalam daripadanya (yang terkait dengan jaringan saraf maju umpan).


Saya tidak berpikir itu akan berhasil. Gunakan contoh khas dari penglihatan komputer, setiap piksel gambar dapat dikaitkan dengan bagian objek yang berbeda. Contoh, piksel (50,50) dari gambar 1 adalah mata kucing, tetapi kucing itu sedikit bergerak pada gambar 2, jadi (50, 50) hanyalah piksel latar belakang. Jika lokasi NAS, yaitu. oklusi acak, bervariasi berdasarkan pengamatan, imputasi Anda tidak akan berhasil.
horaceT
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.