Apakah ada tujuan khusus dalam hal efisiensi atau fungsionalitas mengapa algoritma k-means tidak menggunakan misalnya cosine (dis) kesamaan sebagai metrik jarak, tetapi hanya dapat menggunakan norma Euclidean? Secara umum, akankah metode K-means patuh dan benar ketika jarak selain Euclidean dipertimbangkan atau digunakan?
[Tambahan oleh @ttnphns. Pertanyaannya adalah dua kali lipat. "(Non) Jarak Euclidean" mungkin menyangkut jarak antara dua titik data atau jarak antara titik data dan pusat cluster. Kedua cara telah dicoba untuk mengatasi dalam jawaban sejauh ini.]
clustering
k-means
distance-functions
euclidean
ingin tahu
sumber
sumber
Jawaban:
Prosedur K-Means - yang merupakan metode kuantisasi vektor yang sering digunakan sebagai metode pengelompokan - tidak secara eksplisit menggunakan jarak berpasangan b / w titik data sama sekali (berbeda dengan hierarki dan beberapa pengelompokan lain yang memungkinkan pengukuran kedekatan yang berubah-ubah). Ini berarti berulang kali menetapkan titik ke centroid terdekat sehingga menggunakan jarak Euclidean dari titik data ke centroid . Namun, K-Means secara implisit didasarkan pada jarak Euclidean berpasangan b / w titik data, karena jumlah deviasi kuadrat dari centroid sama dengan jumlah jarak Euclidean kuadrat berpasangan dibagi dengan jumlah titik. Istilah "centroid" sendiri berasal dari geometri Euclidean. Ini adalah multivariat rata-rata di ruang euclidean. Ruang Euclidean adalah tentang jarak euclidean. Jarak non-Euclidean umumnya tidak akan menjangkau ruang Euclidean. Itu sebabnya K-Means hanya untuk jarak Euclidean.
Tetapi jarak Euclidean dengan dua titik data dapat direpresentasikan dalam sejumlah cara alternatif . Misalnya, itu terkait erat dengan produk kosinus atau skalar b / w poin. Jika Anda memiliki kosinus, atau kovarians, atau korelasi, Anda selalu dapat (1) mengubahnya menjadi (kuadrat) jarak Euclidean, dan kemudian (2) membuat data untuk matriks jarak Euclidean itu (melalui Koordinator Utama atau bentuk metrik lainnya) Penskalaan Multidimensi) ke (3) memasukkan data tersebut ke pengelompokan K-Means. Oleh karena itu, dimungkinkan untuk membuat K-Means "bekerja dengan" cosinus berpasangan atau semacamnya; sebenarnya, implementasi pengelompokan K-Means seperti itu ada. Lihat juga tentang implementasi "K-means for distance matrix".
Hal ini dimungkinkan untuk program K-means dengan cara yang langsung menghitung pada matriks persegi jarak Euclidean berpasangan, tentu saja. Tapi itu akan bekerja lambat, dan cara yang lebih efisien adalah membuat data untuk matriks jarak itu (mengubah jarak menjadi produk skalar dan seterusnya - lintasan yang diuraikan dalam paragraf sebelumnya) - dan kemudian menerapkan prosedur standar K-means ke dataset itu.
Harap dicatat saya sedang mendiskusikan topik apakah perbedaan euclidean atau noneuclidean antara titik data kompatibel dengan K-means. Hal ini terkait dengan tetapi tidak dengan pertanyaan yang sama seperti apakah penyimpangan noneuclidean dari centroid (dalam arti luas, pusat atau quasicentroid) dapat dimasukkan dalam K-means atau modifikasi "K-means".
Lihat pertanyaan terkait K-means: Mengapa meminimalkan WCSS adalah memaksimalkan Jarak antar cluster? .
sumber
But a Euclidean distance b/w two data points can be represented in a number of alternative ways. For example, it is closely tied with cosine or scalar product b/w the points. If you have cosine, or covariance, or correlation, you can always (1) transform it to (squared) Euclidean distance
, Anda dapat dengan mudah menulis:distance(x,y) = 1 - cosine_sim(x,y)
atau sesuatu yang serupa bernas dan informatif.Lihat juga jawaban @ttnphns untuk interpretasi k-means yang benar-benar melibatkan jarak Euclidean searah.
Cara k-means dibangun tidak didasarkan pada jarak .
K-means meminimalkan varians dalam-cluster. Sekarang jika Anda melihat definisi varians, itu identik dengan jumlah jarak Euclidean kuadrat dari pusat. (Jawaban @ttnphns mengacu pada jarak Euclidean berpasangan!)
Ide dasar dari k-means adalah untuk meminimalkan kesalahan kuadrat . Tidak ada "jarak" yang terlibat di sini.
Mengapa tidak tepat untuk menggunakan jarak arbiter: karena k-means dapat berhenti menyatu dengan fungsi jarak lainnya . Bukti umum konvergensi adalah seperti ini: langkah penugasan dan langkah pembaruan rata-rata mengoptimalkan kriteria yang sama . Ada sejumlah tugas yang terbatas mungkin. Oleh karena itu, ia harus konvergen setelah sejumlah perbaikan terbatas. Untuk menggunakan bukti ini untuk fungsi jarak lainnya, Anda harus menunjukkan bahwa rerata (catatan: k- berarti ) meminimalkan jarak Anda juga.
Jika Anda mencari varian jarak-k Manhattan, ada k-median. Karena median adalah penaksir L1 terbaik yang dikenal.
Jika Anda ingin fungsi jarak sewenang-wenang, lihat k-medoid (alias: PAM, partisi di sekitar medoid). Medoid meminimalkan jarak sewenang-wenang (karena itu didefinisikan sebagai minimum), dan hanya ada sejumlah terbatas kemungkinan medoid juga. Ini jauh lebih mahal daripada rata-rata.
sumber
@ttnphns answer refers to pairwise Euclidean distances!
Dalam jawaban saya, paragraf 1, saya dengan jelas merujuk kedua "interpretasi SS" (langsung) dan "berpasangan d ^ 2" (implisit).k-means may stop converging with other distance functions
homolog dengan teoretis sayaNon-euclidean distances will generally not span euclidean space
.Saya mungkin sedikit bertele-tele di sini, tetapi K-means adalah nama yang diberikan untuk algoritma tertentu yang memberikan label ke titik data sedemikian rupa sehingga dalam varian cluster diminimalkan, dan itu bukan nama untuk "teknik umum".
Algoritma K-means telah diusulkan secara independen dari beberapa bidang, dengan interpretasi yang kuat yang berlaku untuk bidang tersebut. Ternyata, yah, itu juga jarak euclidean ke pusat. Untuk sejarah singkat K-means, silakan baca Data Clustering: 50-tahun di luar K-means
Ada sejumlah besar algoritma pengelompokan lain yang menggunakan metrik selain Euclidean. Kasus paling umum yang saya tahu adalah menggunakan Bregman Divergences untuk pengelompokan, di mana Euclidean adalah kasus khusus.
sumber
Karena ini tampaknya sekarang merupakan pertanyaan kanonik, dan itu belum disebutkan di sini:
Satu ekstensi alami dari k-means untuk menggunakan metrik jarak selain dari jarak Euclidean standar pada adalah dengan menggunakan trik kernel . Ini mengacu pada ide memetakan input secara implisit ke ruang Hilbert dimensi tinggi, atau tak terbatas, di mana jarak sesuai dengan fungsi jarak yang ingin kita gunakan, dan menjalankan algoritme di sana. Yaitu, membiarkan menjadi beberapa fitur peta sehingga metrik diinginkan dapat ditulis , kita menjalankan k-means pada poin . Dalam banyak kasus, kita tidak dapat menghitung peta secara eksplisit, tetapi kita bisaRd φ:Rp→H d d(x,y)=∥φ(x)−φ(y)∥H {φ(xi)} φ hitung kernel . Tidak semua metrik jarak cocok dengan model ini, tetapi banyak yang melakukannya, dan ada fungsi-fungsi seperti yang didefinisikan pada string, grafik, gambar, distribusi probabilitas, dan banyak lagi ....k(x,y)=⟨φ(x),φ(y)⟩H
Dalam situasi ini, dalam algoritma k-means standar (Lloyd), kita dapat dengan mudah menetapkan poin ke klusternya, tetapi kami mewakili pusat kluster secara implisit (sebagai kombinasi linear dari titik input dalam ruang Hilbert). Menemukan representasi terbaik di ruang input akan membutuhkan menemukan rata-rata Fréchet , yang cukup mahal. Jadi mudah untuk mendapatkan tugas cluster dengan kernel, lebih sulit untuk mendapatkan artinya.
Makalah berikut membahas algoritma ini, dan menghubungkannya dengan pengelompokan spektral:
sumber
Saya sudah membaca banyak komentar menarik di sini, tetapi izinkan saya menambahkan bahwa implementasi "k-means" Matlab tentang mendukung k-means mendukung 4 jarak non-Euclidean [antara titik data dan pusat cluster]. Satu-satunya komentar dari dokumentasi yang dapat saya lihat adalah:
Kemudian daftar fungsi
c
danx
ikuti. Jadi, mengingat itup
adalah dimensi dari data input, tampaknya tidak ada penyisipan Euclidean yang dilakukan sebelumnya.BTW di masa lalu saya telah menggunakan k-means Matlab dengan jarak korelasi dan itu (tidak mengejutkan) melakukan apa yang seharusnya dilakukan.
sumber
cosine
(yang hanya jarak Euclidean pada titik input yang dinormalisasi),correlation
(Euclidean pada input standar),cityblock
( , dalam hal ini median digunakan daripada rata-rata), dan (yang merupakan hanya untuk input biner).hamming
cityblock
Dari sini :
sumber