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):
Prosedur lengkapnya adalah sebagai berikut:
- Melakukan pengelompokan hierarkis pada 10k poin dan menyelamatkan medoid untuk 2: 150 cluster.
- Mengambil medoids dari (1) sebagai benih untuk pengelompokan kmeans dari 163k pengamatan.
- 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:
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.
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:
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 kluster
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.