Menafsirkan hasil k-means clustering di R

12

Saya menggunakan kmeansinstruksi R untuk melakukan algoritma k-means pada dataset iris Anderson. Saya punya pertanyaan tentang beberapa parameter yang saya dapatkan. Hasilnya adalah:

Cluster means:
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1     5.006000    3.428000     1.462000    0.246000

Dalam hal ini, apa arti "Cluster berarti"? Apakah rata-rata jarak semua objek di dalam kluster?

Juga di bagian terakhir yang saya miliki:

Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
 (between_SS / total_SS =  88.4 %)

Nilai 88,4% itu, bisa apa interpretasinya?

James
sumber
4
Tolong jangan melewati pos! stackoverflow.com/q/14524818/429846
Reinstate Monica - G. Simpson
Tidak, itu hanya rata-rata dari semua objek di dalam cluster pertama (totalnya 3). Anda bisa mendapatkan 88,4% oleh iris.km $ betweenss / iris.km $ totss
dfhgfh
Baca artikel apa pun di k-means . Maka harus jelas apa artinya clsuter ... K-berarti tidak berdasarkan jarak . Ini meminimalkan varian alias: "jumlah deviasi kuadrat".
Memiliki QUIT - Anony-Mousse
Asumsikan bahwa mean Anda adalah 0. Lakukan perhitungan. Periksa apakah asumsi di atas membuat perbedaan. Hidup bahagia sesudahnya. Keuntungan!
mia

Jawaban:

23

Jika Anda menghitung jumlah jarak kuadrat dari setiap titik data ke mean sampel global, Anda dapatkan total_SS. Jika, alih-alih menghitung rata-rata sampel global (atau 'centroid'), Anda menghitung satu per grup (di sini, ada tiga kelompok) dan kemudian menghitung jumlah jarak kuadrat dari ketiga cara ini ke rata-rata global, Anda dapatkan between_SS. (Saat menghitung ini, Anda mengalikan jarak kuadrat dari setiap mean ke mean global dengan jumlah titik data yang diwakilinya.)

Jika tidak ada pola pengelompokan yang dapat dilihat, tiga cara dari tiga kelompok akan mendekati rata-rata global, dan between_SSakan menjadi sangat kecil total_SS. Sebaliknya di sini, yang menunjukkan bahwa titik-titik data cluster cukup rapi dalam ruang empat dimensi menurut spesies.

F. Tusell
sumber
14

K-means bukan algoritma pengelompokan berbasis jarak .

K-means mencari jumlah minimum penetapan kuadrat , yaitu meminimalkan varians yang tidak dinormalisasi (= total_SS) dengan menetapkan poin ke pusat-pusat cluster.

Agar k-means menyatu, Anda membutuhkan dua kondisi:

  • menugaskan kembali poin mengurangi jumlah kuadrat
  • mengkomputasi ulang mean mengurangi jumlah kuadrat

Karena hanya ada jumlah kombinasi terbatas, Anda tidak dapat mengurangi nilai ini secara tak terhingga dan algoritma harus konvergen di beberapa titik ke optimum lokal .

saya(xsaya-μjsaya)2j. Secara matematis, penetapan dengan jumlah kuadrat sama dengan penetapan dengan menutup kuadrat jarak Euclidean, yang (jika Anda menghabiskan siklus CPU untuk komputasi sqrt) sama dengan penetapan jarak Euclidean minimal. Jadi intuisi menetapkan setiap titik ke mean terdekat adalah benar, tetapi tidak apa masalah optimasi.

between_SS mungkin adalah jumlah kuadrat tertimbang antara dua cara, untuk mengukur seberapa baik pusat-pusat cluster dipisahkan (catatan: pusat-pusat cluster, itu tidak membandingkan cluster yang sebenarnya - secara teknis, kluster sel Voronoi menyentuh kluster tetangga sel Voronoi).

Perhatikan bahwa dengan k-berarti Anda dapat meningkatkan kualitas pengelompokan naif dengan meningkatkan k. Kualitas yang diukur di sini adalah nilai matematika, yang mungkin tidak cocok dengan persyaratan pengguna. Iris sebenarnya adalah contoh yang cukup bagus, di mana k-means sering menyatu dengan hasil yang kurang memuaskan, bahkan mengingat informasi eksternal bahwa seharusnya ada 3 cluster.

Jika Anda menginginkan variasi k-means berbasis jarak , lihat k-medoid . Di sini konvergensi dipastikan dengan mengganti mean dengan medoid:

  • Setiap objek ditugaskan ke kluster terdekat (dengan ukuran jarak arbitrer)
  • Pusat cluster diperbarui ke objek paling utama dari cluster, yaitu dengan jarak rata-rata terkecil ke semua yang lain.

Di setiap langkah, jumlah jarak berkurang; ada sejumlah kombinasi terbatas, oleh karena itu algoritma harus diakhiri pada beberapa minimum lokal.

Memiliki QUIT - Anony-Mousse
sumber
poin menarik +1
Cam.Davidson.Pilon
1
Mengapa tidak ada perhitungan jarak di sini (dalam kmeans)? Untuk menghitung varians, perlu menghitung jarak setiap elemen dengan rata-rata, jadi jelas ada perhitungan jarak yang terlibat, bukan?
Julian
Varians biasanya tidak didefinisikan dalam hal jarak, tetapi sebagai "nilai yang diharapkan dari penyimpangan kuadrat dari rata-rata".
Memiliki QUIT - Anony-Mousse