Saya memiliki 2 kumpulan data, satu dengan contoh positif dari apa yang ingin saya deteksi, dan satu dengan contoh tidak berlabel. Metode apa yang bisa saya gunakan?
Sebagai contoh, misalkan kita ingin memahami mendeteksi email spam berdasarkan beberapa karakteristik email terstruktur. Kami memiliki satu dataset 10.000 email spam, dan satu dataset 100000 email yang kami tidak tahu apakah itu spam atau bukan.
Bagaimana kita bisa mengatasi masalah ini (tanpa memberi label secara manual salah satu data yang tidak berlabel)?
Apa yang dapat kita lakukan jika kita memiliki informasi tambahan tentang proporsi spam dalam data yang tidak berlabel (yaitu bagaimana jika kita memperkirakan bahwa antara 20-40% dari 100.000 email yang tidak berlabel adalah spam)?
sumber
Jawaban:
Saran saya adalah mencoba membangun semacam pengelompokan pada data Anda yang tidak berlabel yang agak mirip dengan dataset berlabel. Alasannya kurang lebih sebagai berikut:
Harapan itu masuk akal, jika Anda secara khusus mencari algoritma pengelompokan, beberapa yang saya pribadi nikmati yang mungkin baik dalam skenario ini adalah FLAME dan tsne . Bergantian, melihat perpustakaan gensim spektakuler dengan python akan membuat Anda jauh menuju pengelompokan yang Anda cari.
Semoga itu bisa membantu dan masuk akal, tinggalkan komentar jika Anda punya pertanyaan.
sumber
Masalah Anda termasuk dalam kerangka pembelajaran PU (hanya positif, banyak yang tidak diberi label).
Ini juga dekat dengan kerangka kerja yang lebih umum dari Semi diawasi belajar (beberapa positif dan negatif, banyak yang tidak berlabel).
Ada banyak makalah survei yang bisa Anda lihat di lapangan.
Metode klasik di lapangan, yang juga diuji pada spam seperti dalam kasus Anda, adalah pelatihan bersama. Dalam pelatihan bersama, Anda membangun dua pelajar independen (mis., Satu berdasarkan konten surat dan satu berdasarkan skema pengiriman) dan Anda menggunakan hasil dari salah satu untuk melatih yang lain dan sebaliknya.
sumber
Latih 2 model generatif, satu untuk setiap dataset (hanya spam, spam plus ham), yang akan memberi Anda probabilitas bahwa titik data diambil dari distribusi probabilitas yang sama dari data pelatihan. Tetapkan email sebagai spam atau ham berdasarkan model mana yang memberi Anda probabilitas tertinggi dari dokumen yang muncul dari data pelatihan yang digunakan untuk melatihnya. Contoh model generatif adalah RBM, autoencoder (dalam hal ini, model mana yang memiliki kesalahan rekonstruksi terendah). Ada kemungkinan beberapa model generatif bayesian juga yang akan menetapkan probabilitas ke titik data berdasarkan beberapa data pelatihan.
Opsi terbaik adalah meluangkan waktu untuk membuat set data kedua yang hanya berisi ham. Itu akan memberi Anda akurasi klasifikasi yang lebih tinggi. Dengan asumsi proporsi yang lebih rendah dari spam ke email ham, itu seharusnya tidak terlalu sulit. Anda bahkan dapat menggunakan Mechanical Turk jika Anda kekurangan waktu atau sumber daya (atau mahasiswa magang \ lulusan atau tenaga kerja murah lainnya).
sumber