Merugikan hasil kriteria pengelompokan


8

Saya telah melakukan pengelompokan titik koordinat (bujur, lintang) dan menemukan hasil yang mengejutkan dan merugikan dari kriteria pengelompokan untuk jumlah cluster yang optimal. Kriteria diambil dari clusterCrit()paket. Poin-poin yang saya coba klaster pada plot (karakteristik geografis dari kumpulan data terlihat jelas):

Plot semua pengamatan

Prosedur lengkapnya adalah sebagai berikut:

  1. Melakukan pengelompokan hierarkis pada 10k poin dan menyelamatkan medoid untuk 2: 150 cluster.
  2. Mengambil medoids dari (1) sebagai benih untuk pengelompokan kmeans dari 163k pengamatan.
  3. Memeriksa 6 kriteria pengelompokan berbeda untuk jumlah cluster yang optimal.

Hanya 2 kriteria pengelompokan yang memberikan hasil yang masuk akal bagi saya - kriteria Silhouette dan Davies-Bouldin. Untuk keduanya, orang harus mencari maksimum di plot. Tampaknya keduanya memberikan jawaban "22 Cluster adalah angka yang baik". Untuk grafik di bawah ini: pada sumbu x adalah jumlah cluster dan pada sumbu y nilai kriteria, maaf untuk deskripsi yang salah pada gambar. Siluet dan Davies-Bouldin masing-masing:

Plot Kriteria Silhoette Plot Kriteria Davies-Bouldin

Sekarang mari kita lihat nilai Calinski-Harabasz dan Log_SS. Maksimum dapat ditemukan di plot. Grafik menunjukkan bahwa semakin tinggi nilainya semakin baik pengelompokan. Pertumbuhan stabil seperti itu cukup mengejutkan, saya pikir 150 cluster sudah merupakan angka yang cukup tinggi. Di bawah plot masing-masing untuk nilai Calinski-Harabasz dan Log_SS.

Plot Kriteria Calinski-Harabasz Log_SS Plot Kriteria

Sekarang untuk bagian yang paling mengejutkan, dua kriteria terakhir. Untuk Ball-Hall perbedaan terbesar antara dua pengelompokan diinginkan dan untuk Ratkowsky-Lance maksimum. Plot Ball-Hall dan Ratkowsky-Lance:

Plot Kriteria Balai Bola Plot Kriteria Ratkowsky-Lance

Dua kriteria terakhir memberikan jawaban yang sama sekali merugikan (semakin kecil jumlah cluster lebih baik) daripada kriteria 3 dan 4. Bagaimana mungkin? Bagi saya sepertinya hanya dua kriteria pertama yang bisa membuat pengertian tentang pengelompokan. Lebar siluet sekitar 0,6 tidak terlalu buruk. Haruskah saya melewatkan indikator yang memberikan jawaban aneh dan percaya pada mereka yang memberikan jawaban yang masuk akal?

Sunting: Plot untuk 22 kluster22 solusi cluster


Edit

Anda dapat melihat bahwa data terkelompok dengan sangat baik dalam 22 grup sehingga kriteria yang menunjukkan bahwa Anda harus memilih 2 cluster tampaknya memiliki kelemahan, heuristik tidak berfungsi dengan baik. Tidak masalah ketika saya dapat memplot data atau ketika data dapat dikemas dalam kurang dari 4 komponen utama dan kemudian diplot. Tetapi jika tidak? Bagaimana saya harus memilih jumlah cluster selain dengan menggunakan kriteria? Saya telah melihat tes yang menunjukkan Calinski dan Ratkowsky sebagai kriteria yang sangat baik dan masih memberikan hasil yang buruk untuk kumpulan data yang tampaknya mudah. Jadi mungkin pertanyaannya tidak boleh "mengapa hasilnya berbeda" tetapi "berapa banyak kita bisa mempercayai kriteria itu?".

Mengapa metrik euclidian tidak baik? Saya tidak benar-benar tertarik pada jarak yang sebenarnya dan tepat di antara mereka. Saya mengerti jarak sebenarnya bulat tetapi untuk semua titik A, B, C, D jika Spheric (A, B)> Spheric (C, D) daripada juga Euclidian (A, B)> Euclidian (C, D) yang seharusnya cukup untuk metrik pengelompokan.

Mengapa saya ingin mengelompokkan poin-poin itu? Saya ingin membangun model prediksi dan ada banyak informasi yang terkandung di lokasi setiap pengamatan. Untuk setiap pengamatan saya juga memiliki kota dan wilayah. Tetapi ada terlalu banyak kota yang berbeda dan saya tidak ingin membuat misalnya 5000 variabel faktor; karena itu saya berpikir tentang mengelompokkan mereka dengan koordinat. Ini bekerja cukup baik karena kepadatan di berbagai daerah berbeda dan algoritma menemukannya, 22 variabel faktor akan baik-baik saja. Saya juga bisa menilai kebaikan pengelompokan dengan hasil dari model prediksi tetapi saya tidak yakin apakah ini akan bijaksana secara komputasi. Terima kasih atas algoritme baru, saya pasti akan mencobanya jika mereka bekerja cepat pada kumpulan data yang sangat besar.


Bisakah Anda memvisualisasikan hasil pengelompokan di 22 cluster?
Memiliki QUIT - Anony-Mousse

Metode apa yang Anda gunakan untuk pengelompokan hierarkis? Itu secara substansial dapat mempengaruhi hasil yang Anda dapatkan?
Hong Ooi

Helo Hong, saya telah menggunakan metode "diana" dengan jarak euclidian yang seharusnya menjadi jarak yang wajar untuk koordinat. Juga solusi 22 cluster yang diplot terlihat cukup masuk akal bagi saya.
Karol Przybylak

Terima kasih atas jawaban Anda dan saran Anda Anony-Mousse. Lihat hasil edit saya.
Karol Przybylak

Anda dapat memperbarui pertanyaan Anda. bandingkan hasilnya dengan mengatakan, agnes dengan 15 kluster dan agnes dengan 30 klaster. Meskipun kleksinya cembung, saya tidak yakin ini yang Anda butuhkan untuk memiliki kluster "baik". Kapan hasil pengelompokan baik? Ada jutaan hasil cembung yang mungkin.
Memiliki QUIT - Anony-Mousse

Jawaban:


6

Pertanyaan yang harus Anda tanyakan pada diri sendiri adalah ini: apa yang ingin Anda capai .

Semua kriteria ini hanyalah heuristik . Anda menilai hasil dari satu teknik optimisasi matematika oleh fungsi matematika lainnya. Ini sebenarnya tidak mengukur apakah hasilnya baik , tetapi hanya apakah data sesuai dengan asumsi tertentu.

Sekarang karena Anda memiliki set data global dalam lintang dan bujur euclidean sebenarnya sebenarnya bukan pilihan yang baik. Namun, beberapa kriteria dan algoritma ini (k-means ...) memerlukan fungsi jarak yang tidak sesuai ini.

Beberapa hal yang harus Anda coba:

  • Algoritma yang lebih baik. Coba DBSCAN dan OPTICS , yang keduanya tidak mengharuskan Anda menentukan jumlah cluster! Mereka memiliki parameter lain, tetapi mis. Jarak dan jumlah minimum poin harus lebih mudah diatur untuk kumpulan data ini.
  • Visualisasi. Alih-alih melihat statistik dari beberapa ukuran matematika, pilih hasil terbaik dengan inspeksi visual ! Jadi pertama-tama, visualisasikan kluster untuk melihat apakah hasilnya masuk akal sama sekali.
  • Pertimbangkan apa yang ingin Anda temukan. Kriteria matematis akan senang jika Anda memisahkan benua. Tapi Anda tidak perlu algoritma untuk melakukan ini, benua sudah cukup terkenal! Jadi apa yang ingin Anda temukan?
  • Hapus outlier. Baik k-means dan hierarchical clustering tidak terlalu menyukai outlier, dan Anda mungkin perlu menambah jumlah cluster untuk mencari berdasarkan jumlah outlier dalam data (DBSCAN dan OPTICS yang disebutkan di atas jauh lebih kuat terhadap outlier).
  • Fungsi jarak yang lebih tepat. Bumi kira-kira berbentuk bola, gunakan jarak lingkaran yang besar alih-alih jarak Euclidean.
  • Coba konversi data menjadi sistem koordinat ECEF 3D , jika Anda perlu menggunakan jarak Euclidean. Ini akan menghasilkan pusat-pusat klaster yang berada di bawah permukaan bumi, tetapi akan memungkinkan pengelompokan Alaska, dan jarak euclidean setidaknya merupakan batas bawah dari jarak permukaan sebenarnya.

Lihat misalnya pertanyaan / jawaban terkait ini di stackoverflow .


0

Bujur dan lintang adalah sudut yang menentukan titik pada bola sehingga Anda mungkin harus melihat pada Great Circle Distance atau jarak geodesi lainnya antara titik daripada jarak Euclidean.

Juga seperti yang telah disebutkan, algoritma pengelompokan berbasis model tertentu seperti model campuran dan yang berbasis model seperti K-means, membuat asumsi tentang bentuk dan ukuran cluster. Dalam situasi ini apakah Anda mengharapkan data Anda cocok dengan model yang mendasarinya? Jika tidak maka metode berbasis kepadatan yang tidak membuat asumsi tentang bentuk / ukuran cluster mungkin lebih tepat.

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.