Saya sedang mengerjakan proyek di R di mana saya memiliki sekitar 1200 email dari sebuah perusahaan, yang sebagian besar diberi label kelas atau kelas , yang merupakan jenis permintaan. Sekitar 1000 email diberi label kelas , dan 200 email berlabel Tujuan saya adalah menggunakan pembelajaran terawasi untuk membangun model yang akan mengklasifikasikan email baru.
Tetapi, setelah banyak pra-pemrosesan (parsing, menghapus stopwords, dll.), Dan mencoba algoritma yang khas (SVM, pohon keputusan, dll.) Pada matriks istilah dokumen, matriks kebingungan saya mengandung banyak positif palsu dan negatif palsu, tetapi hanya beberapa negatif palsu dengan SVM.
Saya bertanya-tanya bagaimana saya bisa meningkatkan hasil saya? Apakah saya perlu menggunakan representasi fitur oversampling, atau bi-gram? Saya kira masalahnya adalah bahwa topik kedua kategori sangat dekat.
sumber
Jawaban:
(Semua email dalam bahasa Prancis atau Perancis)
Metode pra-pemrosesan:
-> Kemudian Dokumen istilah matriks, dengan TF-IDF
Dua kelas berasal dari dukungan teknis, dua kategori "kompleks" dan "mudah", "kompleks" adalah topik seputar keuangan (dalam teori), "sederhana" masalah dengan perangkat lunak (dalam teori) tetapi dalam praktiknya mereka memiliki banyak kata bersama. Dan kelas-kelas lain yang tidak saya perhitungkan, saya hanya fokus pada keduanya untuk saat ini
Sebenarnya jenis algoritma klasifikasi yang saya gunakan tidak begitu relevan karena saya mencoba dengan 5 algo dan tidak ada yang memberikan hasil yang baik
Contoh (matriks kebingungan) Pohon keputusan:
pred:
335 | 10
59 | 12
331 | 1
83 | 1
330 | 2
83 | 1
1 | 83
12 | 320
sumber
Karena Anda hanya berurusan dengan 2 kelas, Anda dapat membuat
commonality.cloud()
dari kedua kelas (saya menggunakan fungsi ini pada R, saya tidak tahu tentang bahasa lain).Ini akan menunjukkan kata-kata yang memiliki kesamaan dalam
class1
danclass2
. Kata-kata ini mungkin tidak membantu algoritma untuk membedakan kelas sehingga Anda dapat menghapus kata-kata ini dan melakukan beberapa tes.sumber
Anda mungkin ingin mencoba pengklasifikasi Bayesian daripada SVM atau Decision Trees. Masalah Anda adalah generalisasi dari masalah filter spam, yaitu mengklasifikasikan email menjadi 'Spam' (kelas 1) atau 'Bukan Spam' (kelas 2). Sebagian besar filter Spam menggunakan klasifikasi Bayesian alih-alih metode pembelajaran yang diawasi lebih umum.
sumber
Anda dapat mempelajari fitur-fiturnya: Saya perhatikan Anda telah menghapus jumlahnya. Bisa jadi Anda melakukan itu karena mereka tidak mungkin bertabrakan, tetapi Anda juga bisa menyelesaikannya dengan memperkenalkan kelas kata (@ number @ atau @ big_number @, dll).
Anda dapat mencoba menggunakan kelas kata pada grup kata lain juga. Jika berhasil, ini mungkin menunjukkan bahwa set Anda menderita sparsity (yang tidak akan mengejutkan saya). Anda dapat menggunakan pemilih fitur untuk tujuan itu, misalnya dengan memberi peringkat dimensi Anda pada perolehan informasi.
Cara yang lebih maju untuk memerangi sparsity meliputi: Algoritma Rocchio atau word2vec.
sumber