Saya perlu menggunakan variabel biner (nilai 0 & 1) dalam k-means. Tetapi k-means hanya bekerja dengan variabel kontinu. Saya tahu beberapa orang masih menggunakan variabel-variabel biner ini dalam k-means mengabaikan fakta bahwa k-means hanya dirancang untuk variabel kontinu. Bagi saya ini tidak bisa diterima.
Pertanyaan:
- Jadi apa cara yang benar secara statistik / matematis untuk menggunakan variabel biner dalam k-means / hierarchical clustering?
- Bagaimana cara mengimplementasikan solusi di SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
sumber
sumber
Jawaban:
Anda benar bahwa k-means clustering tidak boleh dilakukan dengan data tipe campuran. Karena k-means pada dasarnya adalah algoritma pencarian sederhana untuk menemukan partisi yang meminimalkan jarak Euclidean kuadrat-dalam-kluster antara observasi berkerumun dan cluster centroid, itu hanya boleh digunakan dengan data di mana jarak Euclidean kuadrat akan bermakna.
Pada titik ini, Anda dapat menggunakan metode pengelompokan apa pun yang dapat beroperasi melalui matriks jarak alih-alih membutuhkan matriks data asli. (Perhatikan bahwa k-means membutuhkan yang terakhir.) Pilihan yang paling populer adalah mempartisi sekitar medoids (PAM, yang pada dasarnya sama dengan k-means, tetapi menggunakan observasi paling sentral daripada centroid), berbagai pendekatan pengelompokan hierarkis (mis. , median, hubungan tunggal, dan hubungan lengkap; dengan pengelompokan hierarkis Anda akan perlu memutuskan di mana ' memotong pohon ' untuk mendapatkan penugasan kluster akhir), dan DBSCAN yang memungkinkan bentuk klaster yang jauh lebih fleksibel.
Berikut ini adalah
R
demo sederhana (nb, sebenarnya ada 3 cluster, tetapi sebagian besar data tampak seperti 2 cluster sesuai):Kita dapat mulai dengan mencari berbagai kluster dengan PAM:
Hasil-hasil tersebut dapat dibandingkan dengan hasil pengelompokan hierarkis:
Metode median menyarankan 2 (mungkin 3) cluster, yang hanya mendukung 2, tetapi metode lengkap bisa menyarankan 2, 3 atau 4 ke mata saya.
Akhirnya, kita bisa mencoba DBSCAN. Ini membutuhkan menentukan dua parameter: eps, 'jarak jangkauan' (seberapa dekat dua pengamatan harus dihubungkan bersama-sama) dan minPts (jumlah minimum poin yang perlu dihubungkan satu sama lain sebelum Anda bersedia menyebutnya sebagai 'gugus'). Aturan praktis untuk minPts adalah menggunakan satu lebih dari jumlah dimensi (dalam kasus kami 3 + 1 = 4), tetapi memiliki angka yang terlalu kecil tidak disarankan. Nilai default untuk
dbscan
adalah 5; kami akan tetap dengan itu. Salah satu cara untuk memikirkan jarak jangkauan adalah dengan melihat berapa persen jarak yang kurang dari nilai yang diberikan. Kita dapat melakukannya dengan memeriksa distribusi jarak:Jarak itu sendiri tampaknya mengelompok ke dalam kelompok 'dekat' dan 'lebih jauh' yang terlihat secara visual. Nilai 0,3 tampaknya paling bersih membedakan antara dua kelompok jarak. Untuk mengeksplorasi sensitivitas output terhadap berbagai pilihan eps, kita dapat mencoba .2 dan .4 juga:
Menggunakan
eps=.3
memang memberikan solusi yang sangat bersih, yang (setidaknya secara kualitatif) setuju dengan apa yang kami lihat dari metode lain di atas.Karena tidak ada cluster 1-ness yang bermakna , kita harus berhati-hati mencoba mencocokkan pengamatan mana yang disebut 'cluster 1' dari cluster yang berbeda. Sebaliknya, kita dapat membentuk tabel dan jika sebagian besar pengamatan yang disebut 'cluster 1' dalam satu fit disebut 'cluster 2' di yang lain, kita akan melihat bahwa hasilnya masih serupa secara substantif. Dalam kasus kami, pengelompokan yang berbeda sebagian besar sangat stabil dan menempatkan pengamatan yang sama di kelompok yang sama setiap kali; hanya pengelompokan hierarki hierarki lengkap yang berbeda:
Tentu saja, tidak ada jaminan bahwa analisis cluster apa pun akan memulihkan cluster laten yang sebenarnya dalam data Anda. Tidak adanya label kluster yang sebenarnya (yang akan tersedia dalam, katakanlah, situasi regresi logistik) berarti bahwa sejumlah besar informasi tidak tersedia. Bahkan dengan dataset yang sangat besar, cluster mungkin tidak cukup terpisah untuk dapat dipulihkan dengan sempurna. Dalam kasus kami, karena kami tahu keanggotaan cluster yang sebenarnya, kami dapat membandingkannya dengan output untuk melihat seberapa baik itu. Seperti yang saya sebutkan di atas, sebenarnya ada 3 cluster laten, tetapi data memberikan tampilan 2 cluster sebagai gantinya:
sumber
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
.. bagaimana Anda sampai pada ini? menggunakan ketinggian 0,3?Lihatlah makalah ini oleh Finch, http://www.jds-online.com/files/JDS-192.pdf . Ini menjelaskan mengapa menerapkan metode kontinu untuk data biner dapat mengelompokkan data secara tidak akurat, dan yang lebih penting apa saja pilihan dalam fungsi jarak yang sesuai. Itu tidak menjawab bagaimana mengelompokkan dengan k-means, melainkan bagaimana mengelompokkan data biner dengan benar menggunakan metrik non-Euclidean dan metode hierarkis seperti Ward.
sumber