Untuk tugas pemodelan churn saya sedang mempertimbangkan:
- Hitung k cluster untuk data
- Buat model k untuk masing-masing cluster secara terpisah.
Alasan untuk itu adalah, bahwa tidak ada yang dapat dibuktikan, bahwa populasi pelanggan adalah homogen, sehingga masuk akal untuk menganggap bahwa proses menghasilkan data mungkin berbeda untuk "kelompok" yang berbeda.
Pertanyaan saya adalah, apakah ini metode yang tepat? Apakah itu melanggar sesuatu, atau itu dianggap buruk karena suatu alasan? Jika demikian, mengapa?
Jika tidak, apakah Anda akan membagikan beberapa praktik terbaik tentang masalah itu? Dan yang kedua - apakah umumnya lebih baik atau lebih buruk untuk melakukan preclustering daripada pohon model (Seperti yang didefinisikan dalam Witten, Frank - klasifikasi / regresi pohon dengan model di daun. Secara intuitif tampaknya bahwa tahap pohon keputusan hanyalah bentuk lain dari pengelompokan, tetapi idk jika ia memiliki kelebihan dibandingkan pengelompokan "normal".).
Dua poin yang terlalu panjang untuk dikomentari:
kluster murni (yaitu yang hanya berisi kasus satu kelas) tidak ada masalah sendiri: yang disebut model klasifikasi satu kelas setiap kelas independen dari yang lain Mereka dapat dengan sempurna menangani ini.
Namun, jika data cluster sedemikian rupa sehingga kelas-kelasnya cukup terpisah, yaitu cluster-nya agak murni, ini berarti ada struktur yang sangat kuat, sebuah struktur yang dapat ditemukan oleh analisis cluster tanpa panduan oleh label kelas. Ini berarti bahwa beberapa jenis pengklasifikasi tertentu seperti metode tetangga terdekat berdasarkan pada pengukuran jarak yang sama yang digunakan oleh analisis klaster cocok untuk data.
Kemungkinan lain, situasi di mana cluster tidak murni, tetapi kombinasi metode cluster dan klasifikasi dapat dilakukan dengan baik sesuai untuk pohon. Pohon akan melakukan bagian dari pengelompokan (dan node murni tidak dianggap sebagai masalah.) Berikut adalah contoh buatan, versi 2 klaster dari masalah-XOR:
Cara lain untuk memasukkan informasi cluster tanpa menjalankan risiko memiliki cluster murni adalah dengan menggunakan clustering sebagai langkah pembuatan fitur: tambahkan hasil analisis cluster sebagai variasi baru pada matriks data.
Anda bertanya apakah itu buruk karena beberapa alasan: satu perangkap adalah bahwa pendekatan ini mengarah ke model dengan banyak derajat kebebasan. Anda harus sangat berhati-hati untuk tidak berpakaian berlebihan.
Lihatlah pohon berbasis model, misalnya jawaban mbq di sini saya pikir mereka menerapkan konsep yang sangat dekat dengan apa yang Anda cari. Mereka dapat diimplementasikan sebagai hutan juga: misalnya paket R mobForest .
sumber
Saya menghadapi masalah yang sama hari ini. Saya memiliki ratusan fitur untuk membangun classifier. Setelah mencoba model yang berbeda (mis: hutan acak, peningkatan gradien, dll ...), saya masih mendapatkan presisi / recall yang rendah. Jadi saya mencoba melakukan pengelompokan kemudian membangun pengklasifikasi dalam kelompok yang berbeda. Kekhawatiran saya adalah, seperti kata Anony-Mousse, bagaimana saya bisa mendapatkan lebih banyak informasi dari pengklasifikasi jika saya menggunakan semua informasi dalam pengelompokan? Jadi inilah yang akan saya lakukan selanjutnya:
Saya pikir itu mungkin juga membantu mengurangi kompleksitas, berharap itu membantu.
sumber
Atau, dalam pengaturan yang diskriminatif, seseorang dapat mencoba menggabungkan penugasan cluster (keras atau lunak) sebagai fitur untuk melatih algoritma klasifikasi pilihan (misalnya NB, JST, SVM, RF, dll.)
sumber
Nah, jika cluster Anda benar-benar bagus, classifier Anda akan menjadi omong kosong. Karena mereka tidak memiliki cukup pengalihan dalam data pelatihan mereka.
Katakanlah cluster Anda sempurna yaitu murni. Anda bahkan tidak bisa lagi melatih classifier dengan benar di sana. Pengklasifikasi membutuhkan contoh positif dan negatif!
Random Forest sangat sukses dalam melakukan hal sebaliknya. Mereka mengambil sampel acak data, melatih pengelompokan data, dan kemudian menggunakan semua pengklasifikasi yang terlatih.
Apa yang mungkin berhasil adalah dengan menggunakan pengelompokan, dan kemudian melatih classifier pada setiap pasangan cluster, setidaknya jika mereka cukup tidak setuju (jika kelas dibagi menjadi dua cluster, Anda masih tidak bisa melatih classifier di sana!)
sumber