Membangun classifier biner dengan hanya data positif dan tidak berlabel

11

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)?

nassimhddd
sumber
1
Posting harus ditambahkan tag semi-diawasi dan pu-learning. Tag ini masih belum ada dan saat ini saya tidak bisa membuatnya.
DaL
@DanLevin Ya, [tag: semi-supervised-learning] masuk akal. Ditambahkan :) Saya tidak yakin dengan bagian pu-learning (minimal saya tidak menyadarinya), sehingga orang lain dapat melakukannya!
Dawny33
1
Pembelajaran PU adalah kasus khusus pembelajaran semi-supervised. Itu kurang umum (7K hasil di Google) kemudian semi diawasi (298K hasil di Google) bahwa pertanyaan ini PU (dataset berlabel hanya positif). Sementara topik ini dibahas akademi (misalnya, cs.uic.edu/~liub/NSF/PSC-IIS-0307239.html ) ada kemungkinan bahwa pertanyaan ini akan sendirian dengan tag ini untuk sementara waktu.
DaL

Jawaban:

7

Saran saya adalah mencoba membangun semacam pengelompokan pada data Anda yang tidak berlabel yang agak mirip dengan dataset berlabel. Alasannya kurang lebih sebagai berikut:

  • Anda memiliki beberapa vektor fitur untuk mewakili dokumen Anda
  • Berdasarkan vektor fitur tersebut, Anda dapat membuat sejumlah klaster berbeda, dengan metode klaster berbasis fuzzy, kasar, atau kelas
  • Mengetahui seperti apa contoh positifnya, Anda dapat dengan cepat mengevaluasi kesamaan keseluruhan kluster dengan kluster positif Anda
  • Mengetahui bahwa seharusnya hanya ada dua cluster, Anda dapat menyesuaikan hyperparameters pada metode clustering Anda sehingga dua metrik di atas lebih dekat dan lebih dekat dengan kepuasan
  • Dengan dua kelompok, Anda memiliki apa yang kemungkinan mendekati dari dataset berlabel, yang kemudian dapat Anda gunakan sebagai korpus jenis standar perak untuk benar-benar melatih model Anda

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.

indico
sumber
Terima kasih atas jawaban anda. Apakah saya mengerti benar: titik awal Anda adalah menggabungkan 2 dataset?
nassimhddd
@ cafe876 Itu tentu saja salah satu cara untuk memulai, dan kemudian pada dasarnya mencoba membuat kembali sebuah clustering yang mendekati aslinya.
indico
3

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.

Dl
sumber
2

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).

Simon
sumber
Terima kasih atas jawaban anda. Ini adalah contoh yang bagus tentang apa yang dapat dilakukan model generatif yang tidak dapat dilakukan model diskriminatif.
nassimhddd