Saya memiliki dataset dengan spesifikasi sebagai berikut:
- Kumpulan data pelatihan dengan 193.176 sampel dengan 2.821 positif
- Uji Dataset dengan 82.887 sampel dengan 673 positif
- Ada 10 fitur.
Saya ingin melakukan klasifikasi biner (0 atau 1). Masalah yang saya hadapi adalah bahwa datanya sangat tidak seimbang. Setelah normalisasi dan penskalaan data bersama dengan beberapa rekayasa fitur dan menggunakan beberapa algoritma yang berbeda, ini adalah hasil terbaik yang bisa saya capai:
mean square error : 0.00804710026904
Confusion matrix : [[82214 667]
[ 0 6]]
yaitu hanya 6 hit positif yang benar. Ini menggunakan regresi logistik. Berikut adalah berbagai hal yang saya coba dengan ini:
- Algoritma yang berbeda seperti RandomForest, DecisionTree, SVM
- Mengubah nilai parameter untuk memanggil fungsi
- Beberapa rekayasa fitur berbasis intuisi memasukkan fitur majemuk
Sekarang, pertanyaan saya adalah:
- Apa yang dapat saya lakukan untuk meningkatkan jumlah klik positif?
- Bagaimana seseorang bisa menentukan apakah ada pakaian dalam kasus seperti itu? (Saya sudah mencoba merencanakan dll.)
- Pada titik mana seseorang dapat menyimpulkan jika mungkin ini adalah yang terbaik yang bisa saya miliki? (Yang tampaknya menyedihkan mengingat hanya 6 hit dari 673)
- Apakah ada cara saya bisa membuat contoh sampel positif lebih berat sehingga pengenalan pola meningkat mengarah ke lebih banyak hit?
- Plot grafis mana yang dapat membantu mendeteksi outlier atau intuisi tentang pola mana yang paling cocok?
Saya menggunakan perpustakaan scikit-learn dengan Python dan semua implementasi adalah fungsi perpustakaan.
edit:
Berikut adalah hasil dengan beberapa algoritma lain:
Pengelompokan Hutan Acak (n_estimators = 100)
[[82211 667]
[ 3 6]]
Pohon Keputusan:
[[78611 635]
[ 3603 38]]