Saya menjalankan kmeans untuk mengidentifikasi kelompok pelanggan. Saya memiliki sekitar 100 variabel untuk mengidentifikasi cluster. Masing-masing variabel ini mewakili% pengeluaran oleh pelanggan pada suatu kategori. Jadi, jika saya memiliki 100 kategori, saya memiliki 100 variabel ini sehingga jumlah dari variabel-variabel ini adalah 100% untuk setiap pelanggan. Sekarang, variabel-variabel ini sangat berkorelasi satu sama lain. Apakah saya harus membuang beberapa dari ini untuk menghilangkan collinearity sebelum menjalankan kmeans?
Berikut adalah contoh data. Pada kenyataannya saya memiliki 100 variabel dan 10 juta pelanggan.
Customer CatA CatB CatC
1 10% 70% 20%
2 15% 60% 25%
Jawaban:
Jangan jatuhkan variabel apa pun, tetapi pertimbangkan untuk menggunakan PCA. Inilah sebabnya.
Pertama, seperti yang ditunjukkan oleh Anony-mousse, k-means tidak terpengaruh oleh kolinearitas / korelasi. Anda tidak perlu membuang informasi karena itu.
Kedua, jika Anda menjatuhkan variabel Anda dengan cara yang salah, Anda akan secara artifisial membawa beberapa sampel lebih dekat. Sebuah contoh:
(Saya telah menghapus notasi% dan hanya menaruh nilai antara 0 dan 1, dibatasi sehingga semuanya berjumlah 1.)
Jarak euclidean antara masing-masing pelanggan di ruang 3d alami mereka adalah( 1 - 0 )2+ ( 0 - 1 )2+ ( 0 - 0 )2-----------------------√= 2-√
Sekarang katakanlah Anda menjatuhkan CatC.
Sekarang jarak antara pelanggan 1 dan 2 masih , tetapi antara pelanggan 1 dan 3, dan 2 dan 3, itu hanya √2-√ ( 1 - 0 )2+ ( 0 - 0 )2---------------√= 1
Ketiga, collinerarity / korelasi bukan masalah. Dimensi Anda adalah. 100 variabel cukup besar sehingga bahkan dengan 10 juta titik data, saya khawatir k-means dapat menemukan pola palsu dalam data dan cocok untuk itu. Alih-alih, pikirkan tentang menggunakan PCA untuk mengompresnya ke jumlah dimensi yang lebih mudah dikelola - katakan 10 atau 12 untuk memulai dengan (mungkin jauh lebih tinggi, mungkin jauh lebih rendah - Anda harus melihat varians di sepanjang setiap komponen, dan bermain-main sedikit, untuk menemukan nomor yang benar). Anda secara artifisial membawa beberapa sampel lebih dekat bersama-sama melakukan ini, ya, tetapi Anda akan melakukannya dengan cara yang seharusnya mempertahankan sebagian besar varians dalam data, dan yang biasanya akan menghapus korelasi.
~~~~~
EDIT:
Re, komentar di bawah tentang PCA. Ya, itu memang memiliki patologi. Tapi ini cukup cepat dan mudah untuk dicoba, jadi sepertinya masih bukan taruhan buruk bagi saya jika Anda ingin mengurangi dimensi masalah.
Pada catatan itu, saya mencoba dengan cepat membuang beberapa set data sintetik 100 dimensi ke dalam algoritma k-means untuk melihat apa yang muncul. Sementara perkiraan posisi pusat cluster tidak seakurat itu, keanggotaan cluster (yaitu apakah dua sampel ditugaskan ke cluster yang sama atau tidak, yang tampaknya menjadi minat OP) jauh lebih baik daripada yang saya kira. Jadi firasat saya sebelumnya sangat mungkin salah - k-means berfungsi dengan baik pada data mentah.
sumber
Pada contoh mainan di 2d atau 3d, itu seharusnya tidak membuat banyak perbedaan, itu hanya menambahkan beberapa redundansi ke data Anda: semua poin Anda berada pada hyperplane dimensi aneh, (d-1). Begitu juga dengan cluster artinya. Dan jarak dalam hyperplane dimensi (d-1) ini adalah kelipatan linear dari jarak yang sama, sehingga tidak mengubah apa pun.
Mari kita lihat contoh paling sederhana: variabel duplikat.
Jika Anda menjalankan PCA pada kumpulan data Anda, dan menduplikasi suatu variabel, ini secara efektif berarti menempatkan bobot rangkap pada variabel ini. PCA didasarkan pada asumsi bahwa varians di setiap arah adalah sama pentingnya - jadi Anda harus, memang, hati-hati variabel bobot (memperhitungkan korelasi, juga melakukan preprocessing lain yang diperlukan) sebelum melakukan PCA.
sumber
Dianjurkan untuk menghapus variabel jika ada sangat berkorelasi .
Terlepas dari algoritma pengelompokan atau metode tautan, satu hal yang biasanya Anda ikuti adalah menemukan jarak antar titik. Menjaga variabel yang sangat berkorelasi adalah memberi mereka lebih banyak, menggandakan bobot dalam menghitung jarak antara dua titik (Karena semua variabel dinormalisasi, efek biasanya akan berlipat ganda).
Singkatnya kekuatan variabel untuk mempengaruhi pembentukan cluster meningkat jika memiliki korelasi yang tinggi dengan variabel lain.
sumber