Apakah preclustering membantu membangun model prediksi yang lebih baik?

9

Untuk tugas pemodelan churn saya sedang mempertimbangkan:

  1. Hitung k cluster untuk data
  2. 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".).

Ziel
sumber

Jawaban:

3

Ada metode yang disebut regresi clusterwise yang memecahkan masalah yang sama (pertama data cluster dan kemudian membangun model prediksi). Lihat misalnya ini.

Miroslav Sabo
sumber
1
Saya mencarinya di sini: tandfonline.com/doi/abs/10.1080/00273170701836653 dan menemukan berikut dalam abstrak: "dalam beberapa kasus, sebagian besar variasi dalam variabel respons dijelaskan dengan mengelompokkan objek, dengan sedikit manfaat tambahan yang diberikan oleh model regresi dalam - kluster. Dengan demikian, ada potensi yang luar biasa untuk overfitting dengan regresi clusterwise ". Tampaknya tidak terlalu menjanjikan.
Ziel
Ok, tetapi mereka tidak mengatakan bahwa itu selalu gagal. Saya tidak pernah menggunakan metode itu, saya hanya tahu bahwa itu mungkin kombinasi dari pendekatan yang diawasi dan tidak diawasi tetapi ada sejumlah kecil makalah yang menggunakan metode ini.
Miroslav Sabo
Selain itu, sebagian besar aplikasi yang saya temukan adalah tentang pemasaran dan keuangan jadi mungkin sangat cocok terutama untuk data seperti ini.
Miroslav Sabo
1
Tampaknya sangat intuitif untuk bidang pemasaran - churn, cross / upsell.
Ziel
2

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:
    Cluster 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 .

cbeleites tidak senang dengan SX
sumber
1

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:

  1. Gunakan beberapa fitur (kurang, menurut pengetahuan sebelumnya) untuk melakukan pengelompokan.
  2. Gunakan fitur lain (lebih banyak) untuk melatih pengklasifikasi.

Saya pikir itu mungkin juga membantu mengurangi kompleksitas, berharap itu membantu.

Gilbert Liou
sumber
1

kk

NN/kYiN(μi,σi2)i=1πi=21πμ1 μ2σ12σ22μiβiXiβi

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

Sameer
sumber
0

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

Memiliki QUIT - Anony-Mousse
sumber
Tujuan dari pengelompokan ini bukan untuk menemukan kluster "murni", yaitu klaster yang luar biasa dalam membedakan variabel target saya. Tujuan dari pengelompokan ini adalah menemukan kelompok-kelompok yang homogen di daerah "lain". Sebagai contoh: Saya pikir dalam churn ada pelanggan "hanya kualitas" dan pelanggan "optimisasi biaya". Saya tidak berpikir saya harus berasumsi bahwa fitur yang relevan untuk klasifikasi sama di kedua kelompok jadi saya ingin membangun model terpisah untuk masing-masing kelompok. Tentu saja saya tidak memiliki grup "kualitas" dan "biaya" yang eksplisit, oleh karena itu ide pengelompokan untuk memperoleh grup tersebut pertama-tama dari data.
Ziel
Segala bentuk ketidakseimbangan ekstra dan korelasi dalam data dapat membahayakan. Lihat, classifier mungkin ingin membedakan "hanya kualitas" dan "mengoptimalkan biaya". Jika dia hanya mendapat satu kelompok, dia tidak dapat menggunakan perbedaan ini.
Memiliki QUIT - Anony-Mousse
1
Tetapi hanya jika Anda melakukan pendekatan dua tingkat, pertama mengklasifikasikan oleh cluster, kemudian mengevaluasi classifier cluster. Kalau tidak, classifier konstan tidak berguna. Kemudian Anda menempatkan semua beban pada pengelompokan.
Memiliki QUIT - Anony-Mousse
1
Nah, begitulah cara saya memahami OP.
cbeleites tidak senang dengan SX
1
Anda tentu saja dapat melakukan ini, tetapi kemungkinan cluster Anda tidak begitu baik, dan bahwa Anda lebih baik dengan ensemble yang tepat, dari "tumpang tindih" pengklasifikasi. Sama seperti RandomForests.
Memiliki QUIT - Anony-Mousse