Apa yang Anda lakukan ketika tidak ada titik siku untuk pengelompokan kmeans


13

Saya telah belajar bahwa ketika memilih sejumlah cluster, Anda harus mencari titik siku untuk nilai K. yang berbeda. Saya telah merencanakan nilai withinss untuk nilai k dari 1 hingga 10, tetapi saya tidak melihat dengan jelas siku. Apa yang Anda lakukan dalam kasus seperti ini?

KMeans merepotkan


2
Ada banyak kriteria pengelompokan, aturan "SS siku" menjadi hanya satu dan bukan yang terbaik. Coba yang lain. Kemungkinan besar Anda tidak memiliki kelompok dalam data Anda.
ttnphns

@ttnphns Apa ini mistis lainnya yang Anda bicarakan? Bagaimana saya bisa tidak memiliki cluster dalam data saya? Bagaimana aku tahu?
Glen

Jawaban:


7

Metode yang salah?

Mungkin Anda menggunakan algoritma yang salah untuk masalah Anda.

Preprocessing yang salah?

K-means sangat sensitif terhadap preprocessing. Jika satu atribut berada pada skala yang jauh lebih besar daripada yang lain, itu akan mendominasi output. Output Anda kemudian akan efektif 1 dimensi

Visualisasikan hasil

Apa pun yang Anda lakukan, Anda perlu memvalidasi hasil Anda dengan sesuatu selain mulai dari nomor seperti SSQ. Sebagai gantinya, pertimbangkan visualisasi .

Visualisasi juga dapat memberi tahu Anda bahwa mungkin hanya ada satu cluster di data Anda.


Apa saja pilihan visualisasi yang baik untuk data multi-dimensi?
Jeremy

1
Tergantung pada data Anda. Beberapa data dapat diproyeksikan dengan baik, karena memiliki dimensi intrinsik yang jauh lebih rendah. Rangkaian waktu dapat dengan mudah diplot, dan jika data Anda adalah gambar berseri, visualisasikan sebagai gambar? Dengan cara apa pun, visualisasi tergantung pada data Anda , tidak akan pernah ada solusi satu ukuran untuk semua.
Memiliki QUIT - Anony-Mousse

3

Salah satu caranya adalah dengan memeriksa secara manual anggota dalam kelompok Anda untuk k tertentu untuk melihat apakah pengelompokan masuk akal (apakah mereka dapat dibedakan?). Ini dapat dilakukan melalui tabel kontingensi dan cara bersyarat. Lakukan ini untuk berbagai k dan Anda dapat menentukan nilai apa yang sesuai.

Cara yang kurang subyektif adalah dengan menggunakan Nilai Siluet:

/programming/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function

Ini dapat dihitung dengan paket perangkat lunak favorit Anda. Dari tautan:

Metode ini hanya membandingkan kesamaan intra-grup dengan kesamaan kelompok terdekat. Jika ada jarak rata-rata anggota data ke anggota lain dari kluster yang sama lebih tinggi dari jarak rata-rata ke beberapa anggota kluster lain, maka nilai ini negatif dan pengelompokan tidak berhasil. Di sisi lain, nilai silhuette mendekati 1 menunjukkan operasi pengelompokan yang sukses. 0,5 bukan ukuran yang tepat untuk pengelompokan.


Glen, saya pribadi berpikir jawaban Anda tidak lengkap. Paragraf 1 terlihat tidak jelas. Apa itu "inspeksi manual", bisakah Anda menjelaskan prosedurnya? Lalu, Silhouette "kurang subyektif" dari apa ? Dan mengapa?
ttnphns

@ttnphns menjawab diperbarui.
Glen

contingency tables and conditional meansIni lebih jauh mistis. Apa yang harus saya lakukan dengan mereka sampai pada "subyektif" pada k yang baik?
ttnphns

@ttnphns Jika poster memiliki pertanyaan tentang hal itu saya akan menindaklanjutinya. Seperti yang saya katakan, Anda harus memeriksa untuk melihat apakah pengelompokan dapat dibedakan. Tampak jelas bagi saya.
Glen

Jadi jika saya mendapatkan nilai siluet rendah (~ .35), ini mungkin mengindikasikan bahwa data ini tidak benar-benar memiliki cluster yang baik?
Jeremy

0
  • Tidak ada siku untuk K-means tidak berarti bahwa tidak ada cluster dalam data;
  • Tidak ada siku berarti bahwa algoritma yang digunakan tidak dapat memisahkan kelompok; (Pikirkan tentang K-means untuk lingkaran konsentris, vs DBSCAN)

Secara umum, Anda dapat mempertimbangkan:

  • tune algoritma Anda;
  • gunakan algoritma lain;
  • melakukan preprocessing data.

-1

Kita dapat menggunakan paket NbClust untuk menemukan nilai k yang paling optimal. Ini memberikan 30 indeks untuk menentukan jumlah cluster dan mengusulkan hasil terbaik.

NbClust (data = df, distance = "euclidean", min.nc = 2, max.nc = 15, metode = "kmeans", index = "all")


Selamat datang di situs ini! Bisakah Anda mengembangkan jawaban ini? Meskipun bermanfaat, sedikit lebih detail akan membuatnya lebih bermanfaat.
mkt - Reinstate Monica
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.