Mengapa kita menggunakan k-means daripada algoritma lainnya?

14

Saya meneliti tentang k-means dan ini adalah apa yang saya dapatkan: k-means adalah salah satu algoritma paling sederhana yang menggunakan metode pembelajaran tanpa pengawasan untuk memecahkan masalah pengelompokan yang diketahui. Ini bekerja sangat baik dengan kumpulan data besar.

Namun, ada juga kekurangan K-Means yaitu:

  • Sensitivitas yang kuat terhadap pencilan dan kebisingan
  • Tidak bekerja dengan baik dengan bentuk cluster non-lingkaran - jumlah cluster dan nilai benih awal harus ditentukan sebelumnya
  • Kemampuan rendah untuk melewati optimal lokal.

Adakah sesuatu yang hebat tentang k-means, karena tampaknya kekurangannya melebihi hal-hal baik tentang k-means.

Tolong ajari aku.

Tengkorak Emas dengan Pola
sumber
3
Tidak ada yang namanya metode yang baik atau algoritma yang baik tanpa konteks masalah yang digunakan. Jadi kita memang menggunakan k-means karena ada masalah yang k-means adalah solusi optimal (;

Jawaban:

8

Algoritma pengelompokan lainnya dengan fitur yang lebih baik cenderung lebih mahal. Dalam hal ini, k-means menjadi solusi yang bagus untuk pre-clustering, mengurangi ruang menjadi sub-spasi yang lebih kecil di mana algoritma clustering lainnya dapat diterapkan.

zeferino
sumber
Lebih mahal karena dalam biaya program? atau ?
Tengkorak Emas dengan Pola
5
Lebih mahal karena dalam lambat dan intensif memori.
Martin O'Leary
Oh begitu. Adakah manfaat lain selain cepat, kuat, dan lebih mudah dipahami? Lagi pula terima kasih atas tanggapan @ MartinO'Leary dan @ zeferino
Tengkorak Emas dengan Pola
6

K-means adalah yang paling sederhana. Untuk mengimplementasikan dan menjalankan. Yang perlu Anda lakukan adalah memilih "k" dan menjalankannya beberapa kali.

Kebanyakan algoritma yang lebih pintar (khususnya yang bagus) jauh lebih sulit untuk diterapkan secara efisien (Anda akan melihat faktor 100x dalam perbedaan runtime) dan memiliki lebih banyak parameter untuk ditetapkan.

Plus, kebanyakan orang tidak membutuhkan cluster yang berkualitas . Mereka sebenarnya senang dengan apa pun yang bekerja untuk mereka. Plus, mereka tidak benar-benar tahu apa yang harus dilakukan ketika mereka memiliki kelompok yang lebih kompleks. K-means, yang memodelkan kluster menggunakan model paling sederhana yang pernah ada - centroid - persis apa yang mereka butuhkan: reduksi data besar-besaran menjadi centroid .

Memiliki QUIT - Anony-Mousse
sumber
0

K-means seperti algoritma Exchange Sort. Mudah dimengerti, membantu seseorang masuk ke dalam topik, tetapi tidak boleh digunakan untuk sesuatu yang nyata, selamanya. Dalam kasus Exchange Sort, bahkan Bubble Sort lebih baik karena dapat berhenti lebih awal jika array diurutkan sebagian. Dalam kasus K-means, algoritma EM adalah algoritma yang sama tetapi mengasumsikan distribusi Gaussian untuk cluster bukan asumsi distribusi K-means yang seragam. K-means adalah kasus tepi EM ketika semua cluster memiliki matriks kovarians diagonal. Struktur Gaussian berarti bahwa cluster menyusut sendiri ke data dengan cara yang sangat bagus. Ini mengatasi keberatan serius yang Anda ajukan dengan benar dalam pertanyaan. Dan EM tidak jauh lebih mahal daripada K-means, sungguh. (Saya dapat mengimplementasikan keduanya dalam lembar bentang Excel.) Tetapi untuk aplikasi pengelompokan yang serius,

James M. Coggins
sumber