@ung benar-benar benar menyarankan Anda penskalaan multidimensi (MDS) sebagai alat awal untuk membuat points X dimensions
data di luar matriks jarak. Saya menambahkan beberapa stroke. K-means clustering menyiratkan jarak euclidean . MDS akan memberi Anda koordinat titik-dalam-dimensi sehingga menjamin Anda jarak euclidean. Anda harus menggunakan metrik MDS dan meminta jumlah dimensi sebesar mungkin, karena tujuan Anda adalah untuk meminimalkan kesalahan dalam mengekstrak kembali data, bukan untuk memetakannya dalam 2D atau 3D.
Bagaimana jika Anda tidak memiliki perangkat lunak MDS tetapi memiliki beberapa fungsi matriks seperti dekomposisi nilai eigen atau dekomposisi nilai singular? Lalu, Anda bisa melakukan sendiri metrik MDS sederhana - Torgerson MDS, juga dikenal sebagai Analisis Koordinat Utama (PCoA). Itu berjumlah sedikit "memutar" analisis Komponen Utama. Saya tidak akan menjelaskannya di sini, meskipun cukup sederhana. Anda dapat membacanya di banyak tempat, misalnya di sini .
Akhirnya, dimungkinkan untuk memprogram "K-means untuk input matriks jarak" secara langsung - tanpa memanggil atau menulis fungsi yang melakukan PCoA atau metrik MDS lainnya. Kita tahu, bahwa (a) jumlah deviasi kuadrat dari centroid sama dengan jumlah jarak Euclidean kuadrat berpasangan dibagi dengan jumlah titik; dan (b) tahu bagaimana menghitung jarak antara centroid kluster dari matriks jarak ; (c) dan kita lebih lanjut tahu bagaimana jumlah kuadrat saling terkait dalam K-means. Semua itu bersama-sama membuat penulisan algoritma yang Anda inginkan mudah dan tidak rumit. Orang harus ingat bahwa K-means hanya untuk jarak Euclidean / ruang euclidean. Gunakan K-medoid atau metode lain untuk jarak non-euclidean.
Pertanyaan serupa .