Apakah diperlukan normalisasi dan penskalaan fitur untuk pengelompokan k-means?

Jawaban:

63

Jika variabel Anda adalah unit yang tak tertandingi (misalnya tinggi dalam cm dan berat dalam kg), tentu saja Anda harus menstandarkan variabel. Bahkan jika variabel dari unit yang sama tetapi menunjukkan varian yang sangat berbeda, itu masih merupakan ide yang baik untuk melakukan standarisasi sebelum K-means. Anda tahu, pengelompokan K-means adalah "isotropik" di semua arah ruang dan karenanya cenderung menghasilkan lebih banyak atau lebih sedikit (bukan memanjang) kluster. Dalam situasi ini meninggalkan varians tidak sama dengan menempatkan lebih berat pada variabel dengan varians lebih kecil, sehingga cluster akan cenderung dipisahkan sepanjang variabel dengan varians yang lebih besar.

masukkan deskripsi gambar di sini

Hal lain yang juga perlu diingatkan adalah bahwa hasil pengelompokan K-means berpotensi sensitif terhadap urutan objek dalam kumpulan data . Praktik yang dibenarkan adalah menjalankan analisis beberapa kali, mengacak urutan objek; kemudian rata-rata pusat-pusat klaster yang menjalankan dan masukan pusat-pusat seperti yang awal untuk satu putaran terakhir analisis.1

Berikut adalah beberapa alasan umum tentang masalah fitur standardisasi dalam cluster atau analisis multivariat lainnya.


1 Secara khusus, (1) beberapa metode inisialisasi pusat sensitif terhadap urutan kasus; (2) bahkan ketika metode inisialisasi tidak sensitif, hasilnya mungkin kadang-kadang tergantung pada urutan pusat-pusat awal diperkenalkan ke program oleh (khususnya, ketika ada terikat, jarak yang sama dalam data); (3) yang disebut running means versi dari algoritma k-means secara alami sensitif terhadap urutan kasus (dalam versi ini - yang tidak sering digunakan selain dari pengelompokan online) - penghitungan ulang centroid dilakukan setelah setiap kasus individu ditugaskan kembali untuk cluster lain).

ttnphns
sumber
2
Pengacakan, re-running, rata-rata dan run terakhir adalah saran yang sangat bagus. Terima kasih
pedrosaurio
1
Bagaimana k-means sensitif terhadap pemesanan?
SmallChess
1
@StudentT, saya telah menambahkan catatan kaki untuk itu. Terima kasih.
ttnphns
1
@ttnphns bagaimana menentukan secara kuantitatif bahwa variabel memiliki "varians yang sangat berbeda"?
Herman Toothrot
1
@camillejr, silakan mulai dengan memeriksa Q ini: stats.stackexchange.com/q/418427/3277 .
ttnphns
4

Tergantung pada data Anda, saya kira. Jika Anda ingin tren dalam data Anda mengelompok bersama terlepas dari besarnya, Anda harus memusatkan. misalnya. katakanlah Anda memiliki beberapa profil ekspresi gen, dan ingin melihat tren dalam ekspresi gen, maka tanpa pemusatan rata-rata, gen berekspresi rendah Anda akan berkumpul bersama dan menjauh dari gen berekspresi tinggi, terlepas dari tren. Pemusatan membuat gen (baik yang tinggi maupun yang rendah diekspresikan) dengan pola ekspresi yang mirip berkumpul bersama.

Penulis skenario
sumber
Saya sebenarnya membandingkan berbagai fitur yang memiliki skala sendiri. Misalnya saya membandingkan konten GC yang memiliki rentang sekitar 0,3 hingga 0,5 yang mungkin tampak kecil tetapi perbedaannya cukup penting; beberapa fitur lain memiliki rentang yang lebih luas, beberapa lainnya dalam skala yang sangat kecil.
pedrosaurio
Jadi, Anda mengelompokkan berbagai faktor? Mungkin bisa menggunakan bobot atau transformasi nilai.
Penulis malam
Tidak, saya membandingkan semua variabel kontinu
pedrosaurio