Bagaimana memahami kelemahan K-means


365

K-means adalah metode yang banyak digunakan dalam analisis cluster. Dalam pemahaman saya, metode ini TIDAK memerlukan asumsi APAPUN, yaitu, beri saya dataset dan jumlah cluster yang ditentukan sebelumnya, k, dan saya hanya menerapkan algoritma ini yang meminimalkan jumlah kesalahan kuadrat (SSE), dalam cluster cluster kuadrat kesalahan.

Jadi k-means pada dasarnya adalah masalah optimasi.

Saya membaca beberapa materi tentang kelemahan k-means. Sebagian besar dari mereka mengatakan bahwa:

  • k-means mengasumsikan varians dari distribusi setiap atribut (variabel) adalah bola;
  • semua variabel memiliki varians yang sama;
  • probabilitas sebelumnya untuk semua cluster k adalah sama, yaitu, setiap cluster memiliki jumlah pengamatan yang kurang lebih sama;

Jika salah satu dari 3 asumsi ini dilanggar, maka k-means akan gagal.

Saya tidak bisa memahami logika di balik pernyataan ini. Saya pikir metode k-means pada dasarnya tidak membuat asumsi, itu hanya meminimalkan SSE, jadi saya tidak bisa melihat hubungan antara meminimalkan SSE dan 3 "asumsi" itu.


49
Saya akan mengatakan bahwa jumlah cluster sudah cukup asumsi.
njzk2

30
Asumsi utama dari k-means adalah: 1. ada yang k cluster. 2. SSE adalah tujuan yang tepat untuk diminimalkan. 3. semua cluster memiliki SSE yang sama . 4. semua variabel memiliki kepentingan yang sama untuk setiap cluster. Ini adalah asumsi yang cukup kuat ...
Anony-Mousse

2
Untuk pertanyaan kedua Anda (diposting sebagai jawaban, kemudian dihapus): jika Anda ingin memahami k-means sebagai masalah optimasi yang mirip dengan regresi linier, pahami sebagai kuantisasi . Ia mencoba untuk menemukan perkiraan kuadrat terkecil dari data menggunakan instance. Yaitu jika Anda benar-benar mengganti setiap titik dengan centroid terdekat. k
Anony-Mousse

2
@ Anony-Mousse, saya membaca beberapa materi dan kemudian muncul dengan pemikiran berikut: artinya sebagai model statistik (daripada metode optimasi) mengasumsikan bahwa ada k cluster yang mendasari dan penyebaran data murni karena normal noise acak dengan varians yang sama. Ini analog dengan asumsi model regresi linier sederhana. Kemudian (saya percaya, saya belum menemukan makalah) oleh beberapa versi teorema Gauss-Markov, berarti akan memberi Anda penduga yang konsisten dari rata-rata kluster k yang mendasarinya yang kami asumsikan untuk data kami. k -kk-
KevinKim

1
Saya menambahkan ilustrasi pada jawaban saya di bawah kumpulan data di mana orang mungkin menganggap k-means bekerja dengan sangat baik (semua cluster dengan bentuk yang sama) namun masih terjebak dalam minimum lokal; dan bahkan 1000 iterasi tidak menemukan hasil yang optimal.
Anony-Mousse

Jawaban:


273

Sementara saya sangat suka jawaban David Robinson di sini, ada beberapa kritik tambahan tentang k-means.

Mengelompokkan data yang tidak berkerumun

Jalankan k-means pada data yang seragam, dan Anda masih akan mendapatkan kelompok! Itu tidak memberi tahu Anda ketika data tidak mengelompok, dan dapat mengambil jalan buntu dengan cara ini.

K-means pada data yang seragam

Peka terhadap skala

Menyimpan ulang data Anda akan sepenuhnya mengubah hasil. Meskipun ini sendiri tidak buruk, tidak menyadari bahwa Anda harus mengeluarkan perhatian ekstra untuk mengubah data Anda adalah buruk. Faktor penskalaan adalah parameter tersembunyi tambahan dalam k-berarti "default" ke 1 dan dengan demikian mudah diabaikan, namun memiliki dampak besar (tetapi tentu saja ini berlaku untuk banyak algoritma lain juga).d

Ini mungkin yang Anda sebut sebagai "semua variabel memiliki varian yang sama". Kecuali itu idealnya, Anda juga akan mempertimbangkan penskalaan non-linear saat yang tepat.

Perlu diketahui juga bahwa heuristik untuk skala setiap sumbu memiliki varian unit . Ini tidak memastikan bahwa k-means berfungsi. Penskalaan tergantung pada arti dari kumpulan data Anda. Dan jika Anda memiliki lebih dari satu cluster, Anda ingin setiap cluster (secara independen) memiliki varian yang sama di setiap variabel juga.

Berikut adalah contoh tandingan klasik dari kumpulan data yang k-means tidak dapat mengelompok. Kedua sumbu iid di setiap cluster, sehingga cukup untuk melakukan ini dalam 1 dimensi. Tetapi cluster memiliki varians yang bervariasi, dan k-means dengan demikian memisah-misahkan mereka.

K-means tidak dapat mengelompokkan kumpulan data ini

Saya tidak berpikir contoh tandingan ini untuk k-means dicakup oleh poin Anda:

  • Semua cluster berbentuk bulat (iid Gaussian).
  • Semua sumbu memiliki distribusi yang sama dan dengan demikian varian.
  • Kedua cluster masing-masing memiliki 500 elemen.

Namun, k-means masih gagal parah (dan semakin buruk jika saya meningkatkan varians di luar 0,5 untuk cluster yang lebih besar) Tapi: itu bukan algoritma yang gagal. Asumsinya, yang tidak berlaku . K-means bekerja dengan sempurna, hanya mengoptimalkan kriteria yang salah.

Bahkan pada set data yang sempurna, dapat terjebak dalam minimum lokal

Di bawah ini adalah yang terbaik dari 10 run k-means pada set data A3 klasik. Ini adalah set data sintetis, dirancang untuk k-means . 50 cluster, masing-masing bentuk Gaussian, cukup terpisah. Namun, hanya dengan k-means ++ dan 100 iterations saya mendapatkan hasil yang diharapkan ... (di bawah ini adalah 10 iterations dari k-means reguler, untuk ilustrasi).

k-means pada set data A3

Anda akan dengan cepat menemukan banyak cluster di set data ini, di mana k-means gagal menemukan struktur yang benar. Misalnya di kanan bawah, gugus dipecah menjadi tiga bagian. Tetapi tidak ada cara, k-means akan memindahkan salah satu centroid ini ke tempat yang sama sekali berbeda dari kumpulan data - ini terperangkap dalam minimum lokal (dan ini sudah merupakan yang terbaik dari 10 run!)

Dan ada banyak minimum lokal seperti itu dalam kumpulan data ini. Sangat sering ketika Anda mendapatkan dua sampel dari cluster yang sama, itu akan macet di minimum di mana cluster ini tetap terpecah, dan dua cluster lainnya bergabung sebagai gantinya. Tidak selalu, tetapi sangat sering. Jadi Anda perlu banyak iterasi untuk memilih yang beruntung. Dengan 100 iterasi k-means, saya masih menghitung 6 error, dan dengan iterasi 1000 saya turun ke 4 error. K-means ++ dengan cara bobot sampel acak, bekerja jauh lebih baik pada kumpulan data ini.

Berarti kontinu

Meskipun Anda dapat menjalankan k-means pada data biner (atau data kategorik sekali-panas yang disandikan), hasilnya tidak akan menjadi biner lagi. Jadi Anda memang mendapatkan hasilnya, tetapi Anda mungkin tidak dapat menafsirkannya pada akhirnya, karena memiliki tipe data yang berbeda dari data asli Anda.

Asumsi tersembunyi: SSE layak diminimalkan

Ini pada dasarnya sudah hadir dalam jawaban di atas, ditunjukkan dengan baik dengan regresi linier. Ada beberapa kasus penggunaan di mana k-means masuk akal. Ketika Lloyd harus memecahkan kode sinyal PCM, ia tahu jumlah nada yang berbeda, dan kesalahan kuadrat terkecil meminimalkan kemungkinan kesalahan penguraian sandi. Dan dalam kuantisasi warna gambar, Anda meminimalkan kesalahan warna saat mengurangi palet juga. Tetapi pada data Anda, apakah jumlah penyimpangan kuadrat kriteria yang berarti untuk meminimalkan?

Dalam counterexample di atas, varians tidak layak diminimalkan, karena itu tergantung pada cluster. Sebagai gantinya, Model Campuran Gaussian harus sesuai dengan data, seperti pada gambar di bawah ini:

Pemodelan Campuran Gaussian

(Tapi ini bukan metode pamungkas. Mudah saja untuk membangun data yang tidak memenuhi asumsi "campuran k distribusi Gaussian", misalnya, dengan menambahkan banyak kebisingan latar belakang)

Terlalu mudah digunakan dengan buruk

Secara keseluruhan, itu terlalu mudah untuk melemparkan k-means pada data Anda, dan meskipun demikian mendapatkan hasilnya (itu cukup acak, tetapi Anda tidak akan menyadarinya). Saya pikir akan lebih baik untuk memiliki metode yang dapat gagal jika Anda belum memahami data Anda ...

K-artinya sebagai kuantisasi

Jika Anda menginginkan model teoritis tentang apa arti k-berarti, anggap itu pendekatan kuantisasi , bukan algoritma pengelompokan.

Tujuan dari k-means - meminimalkan kesalahan kuadrat - adalah pilihan yang masuk akal jika Anda mengganti setiap objek dengan centroid terdekat. (Itu jauh lebih masuk akal jika Anda memeriksa IMHO kelompok data asli.)

k

Kuantisasi ini mungkin sangat mirip dengan contoh regresi linier. Regresi linier menemukan model linier terbaik . Dan k-means menemukan (kadang-kadang) pengurangan terbaik untuk nilai k dari kumpulan data multidimensi. Di mana "terbaik" adalah kesalahan kuadrat terkecil.

IMHO, k-means adalah algoritma kuantisasi yang baik (lihat gambar pertama di posting ini - jika Anda ingin memperkirakan data yang ditetapkan menjadi dua poin, ini adalah pilihan yang masuk akal!). Jika Anda ingin melakukan analisis kluster seperti dalam menemukan struktur maka k-means adalah IMHO bukan pilihan terbaik. Itu cenderung mengelompok ketika tidak ada cluster, dan tidak dapat mengenali berbagai struktur yang Anda lihat banyak dalam data.


Cetak halus: semua gambar dihasilkan dengan ELKI . Data dihasilkan menggunakan .xmlformat pembuatan data, tetapi sangat mendasar sehingga tidak layak untuk dibagikan.


17
(Hanya untuk dicatat - mungkin bukan ide yang baik untuk berbicara tentang "jawaban di atas", karena urutan jawaban yang dilihat pembaca dapat bervariasi. Misalnya, jika mereka mengatur urutan tampilan ke "aktif", maka jawaban Anda adalah sebenarnya yang di atas!)
Silverfish

1
@ Anony-Mousse Jawaban ini sangat mengagumkan. Tetapi sampai sekarang, saya agak lupa apa yang biasanya kita maksud dengan mengatakan "k-berarti akan bekerja dalam beberapa kondisi dan akan gagal dalam kondisi lain." Apa arti kata "bekerja" atau "gagal" dalam konteks ini? Apakah "berhasil" berarti solusi yang dihasilkan oleh k-means akan terlihat 'masuk akal' secara visual? Ini agak kabur. Atau 'bekerja' berarti jika k-means memberikan solusi yang sama dengan 'solusi standar' yaitu, kami membuat pra-set data dan menggunakan k-means. Dalam konteks ini, 'pekerjaan' masuk akal, tetapi dalam kenyataannya, data tidak dihasilkan oleh beberapa distribusi.
KevinKim

Biasanya orang merujuk pada beberapa kebenaran dasar, yaitu bagaimana data dihasilkan atau beberapa label disembunyikan dari algoritma. Membandingkan dengan data yang dihasilkan akan lebih memilih algoritma yang mengoptimalkan model yang digunakan untuk pembangkitan (misalnya GMM dan k-means untuk Gaussians). Dan bahkan pada data nyata dan berlabel evaluasi ini adalah tentang mereproduksi hasil yang diketahui . Ketika Anda mempertimbangkan aspek eksplorasi / penemuan pengetahuan, di mana Anda ingin mempelajari sesuatu yang baru . Tapi hanya itu yang kita punya.
Anony-Mousse

k

@TMOTTM ini dengan k dipilih berdasarkan pengetahuan sebelumnya. Terbaik dari 10 berjalan semua dengan "benar" k memilih apriori.
Anony-Mousse

450

Sungguh pertanyaan yang luar biasa - ini adalah kesempatan untuk menunjukkan bagaimana seseorang akan memeriksa kelemahan dan asumsi metode statistik apa pun. Yaitu: make up beberapa data dan coba algoritma di atasnya!

Kami akan mempertimbangkan dua asumsi Anda, dan kita akan melihat apa yang terjadi pada algoritma k-means ketika asumsi tersebut rusak. Kami akan menempel pada data 2 dimensi karena mudah divisualisasikan. (Berkat kutukan dimensi , menambahkan dimensi tambahan kemungkinan akan membuat masalah ini lebih parah, bukan lebih sedikit). Kami akan bekerja dengan bahasa pemrograman statistik R: Anda dapat menemukan kode lengkap di sini (dan posting di formulir blog di sini ).

Pengalihan: Kuartet Anscombe

Pertama, analogi. Bayangkan seseorang berdebat sebagai berikut:

Saya membaca beberapa materi tentang kelemahan regresi linier - yang diharapkan tren linear, bahwa residu terdistribusi normal, dan tidak ada outlier. Tetapi semua regresi linier lakukan adalah meminimalkan jumlah kesalahan kuadrat (SSE) dari garis yang diprediksi. Itu masalah optimisasi yang bisa diselesaikan tidak peduli apa bentuk kurva atau distribusi residu. Dengan demikian, regresi linier tidak memerlukan asumsi untuk berfungsi.

Ya, ya, regresi linier bekerja dengan meminimalkan jumlah residu kuadrat. Tapi itu dengan sendirinya bukan tujuan dari regresi: apa yang kami coba lakukan adalah menarik garis yang berfungsi sebagai prediktor y yang andal dan tidak bias dari x berdasarkan x . The Gauss-Markov teorema memberitahu kita bahwa meminimalkan SSE menyelesaikan yang goal- tapi itu teorema bertumpu pada beberapa asumsi yang sangat spesifik. Jika asumsi-asumsi yang rusak, Anda masih dapat meminimalkan SSE, tapi mungkin tidak melakukanapa pun. Bayangkan mengatakan "Anda mengendarai mobil dengan mendorong pedal: mengemudi pada dasarnya adalah 'proses mendorong pedal.' Pedal dapat didorong tidak peduli berapa banyak gas di dalam tangki. Oleh karena itu, bahkan jika tangki itu kosong, Anda masih dapat mendorong pedal dan mengendarai mobil. "

Tapi bicara itu murah. Mari kita lihat data yang dingin dan sulit. Atau sebenarnya, data yang dibuat-buat.

masukkan deskripsi gambar di sini

R2

Orang bisa mengatakan "Regresi linear masih bekerja dalam kasus-kasus itu, karena meminimalkan jumlah kuadrat dari residu." Tapi kemenangan yang sangat kecil ! Regresi linier akan selalu menarik garis, tetapi jika itu garis yang tidak berarti, siapa yang peduli?

Jadi sekarang kita melihat bahwa hanya karena optimasi dapat dilakukan tidak berarti kita mencapai tujuan kita. Dan kita melihat bahwa membuat data, dan memvisualisasikannya, adalah cara yang baik untuk memeriksa asumsi model. Tunggu intuisi itu, kita akan membutuhkannya sebentar lagi.

Asumsi Rusak: Data Non-Bulat

Anda berpendapat bahwa algoritma k-means akan berfungsi dengan baik pada cluster non-bola. Cluster non-bola seperti ... ini?

masukkan deskripsi gambar di sini

Mungkin ini bukan yang Anda harapkan - tetapi ini adalah cara yang sangat masuk akal untuk membangun cluster. Melihat gambar ini, kita manusia segera mengenali dua kelompok titik-alami - tidak salah lagi. Jadi mari kita lihat bagaimana k-means: penugasan diperlihatkan dalam warna, pusat yang diperhitungkan ditampilkan sebagai X.

masukkan deskripsi gambar di sini

Ya itu tidak benar. K-means berusaha memasukkan pasak persegi ke dalam lubang bundar - mencoba menemukan pusat yang bagus dengan bola yang rapi di sekitarnya - dan gagal. Ya, itu masih meminimalkan jumlah dalam-kuadrat-kuadrat- tetapi seperti di Kuartet Anscombe di atas, itu adalah kemenangan Pyrrhic!

Anda mungkin berkata, "Itu bukan contoh yang adil ... tidak ada metode pengelompokan yang dapat dengan benar menemukan kelompok yang aneh." Tidak benar! Coba pengelompokan hierarki tautan tunggal :

masukkan deskripsi gambar di sini

Berhasil! Ini karena pengelompokan hierarki hubungan tunggal membuat asumsi yang tepat untuk dataset ini. (Ada seluruh lain kelas situasi di mana gagal).

Anda mungkin berkata, "Itu adalah kasus patologis yang ekstrem." Tapi ternyata tidak! Sebagai contoh, Anda dapat membuat grup luar menjadi setengah lingkaran, bukan lingkaran, dan Anda akan melihat k-means masih sangat buruk (dan pengelompokan hierarkis masih berjalan dengan baik). Saya dapat menemukan situasi bermasalah lainnya dengan mudah, dan itu hanya dalam dua dimensi. Saat Anda mengelompokkan data 16 dimensi, ada semua jenis patologi yang bisa muncul.

Terakhir, saya harus perhatikan bahwa k-means masih dapat diselamatkan! Jika Anda mulai dengan mengubah data Anda menjadi koordinat kutub , pengelompokan sekarang berfungsi:

masukkan deskripsi gambar di sini

Itulah mengapa memahami asumsi yang mendasari suatu metode sangat penting: itu tidak hanya memberi tahu Anda ketika suatu metode memiliki kelemahan, ia memberi tahu Anda cara memperbaikinya.

Asumsi Rusak: Cluster Berukuran Tidak Rata

Bagaimana jika cluster memiliki jumlah poin yang tidak rata - apakah itu juga merusak k-means clustering? Nah, pertimbangkan kumpulan cluster ini, dengan ukuran 20, 100, 500. Saya telah menghasilkan masing-masing dari Gaussian multivarian:

masukkan deskripsi gambar di sini

Sepertinya k-means mungkin bisa menemukan kluster itu, kan? Segala sesuatu tampaknya dihasilkan dalam kelompok yang rapi dan rapi. Jadi mari kita coba k-means:

masukkan deskripsi gambar di sini

Aduh. Apa yang terjadi di sini sedikit lebih halus. Dalam upayanya untuk meminimalkan jumlah dalam-cluster kuadrat, algoritma k-means memberikan lebih banyak "bobot" untuk cluster yang lebih besar. Dalam praktiknya, itu berarti senang membiarkan gugus kecil itu berakhir jauh dari pusat mana pun, sementara itu ia menggunakan pusat-pusat itu untuk "memecah" kelompok yang jauh lebih besar.

Jika Anda sedikit bermain dengan contoh-contoh ini ( kode R di sini! ), Anda akan melihat bahwa Anda dapat membuat lebih banyak skenario di mana k-means salah memahaminya.

Kesimpulan: Tidak Ada Makan Siang Gratis

Ada konstruksi menarik dalam cerita rakyat matematika, yang diformalkan oleh Wolpert dan Macready , yang disebut "Teorema Makan Siang Gratis." Ini mungkin teorema favorit saya dalam filosofi pembelajaran mesin, dan saya menikmati setiap kesempatan untuk mengemukakannya (apakah saya menyebutkan saya suka pertanyaan ini?) Gagasan dasarnya dinyatakan (tidak keras) seperti ini: "Ketika dirata-rata di semua situasi yang mungkin, setiap algoritma berkinerja sama baiknya. "

Kedengarannya berlawanan dengan intuisi? Mempertimbangkan bahwa untuk setiap kasus di mana suatu algoritma bekerja, saya dapat membangun situasi di mana ia sangat gagal. Regresi linier mengasumsikan data Anda berada di sepanjang garis - tetapi bagaimana jika itu mengikuti gelombang sinusoidal? Uji-t mengasumsikan setiap sampel berasal dari distribusi normal: bagaimana jika Anda memasukkan pencilan? Algoritma gradient ascent dapat terperangkap dalam maxima lokal, dan setiap klasifikasi yang diawasi dapat diakali menjadi overfitting.

Apa artinya ini? Itu berarti asumsi di mana kekuatan Anda berasal! Ketika Netflix merekomendasikan film kepada Anda, ia mengasumsikan bahwa jika Anda menyukai satu film, Anda akan menyukai yang serupa (dan sebaliknya). Bayangkan sebuah dunia di mana itu tidak benar, dan selera Anda tersebar acak secara acak di berbagai genre, aktor dan sutradara. Algoritme rekomendasi mereka akan sangat gagal. Apakah masuk akal untuk mengatakan "Yah, itu masih meminimalkan beberapa kesalahan kuadrat yang diharapkan, sehingga algoritma ini masih berfungsi"? Anda tidak dapat membuat algoritme rekomendasi tanpa membuat beberapa asumsi tentang selera pengguna - seperti halnya Anda tidak dapat membuat algoritma pengelompokan tanpa membuat beberapa asumsi tentang sifat dari cluster tersebut.

Jadi jangan hanya menerima kekurangan ini. Kenali mereka, sehingga mereka dapat menginformasikan algoritma pilihan Anda. Pahami mereka, sehingga Anda dapat mengubah algoritma Anda dan mengubah data Anda untuk menyelesaikannya. Dan cintai mereka, karena jika model Anda tidak pernah salah, itu berarti itu tidak akan pernah benar.



50
+1 untuk jawaban yang penuh gairah ini. Saya sangat menikmati contoh transformasi kutub, trik-trik pintar itu tidak pernah berhenti membuat saya takjub dengan matematika yang bodoh.
mugen

20
+1, ini adalah jawaban yang benar-benar indah yang melakukan pekerjaan yang bagus untuk menunjukkan bagaimana asumsi-asumsi tersebut dipecah tanpa terjebak dalam rincian analisis.
Louis Cialdella

15
+1 Salah satu hal umum yang sering dikeluhkan orang kepada saya adalah bahwa hal-hal teoretis tidak berhasil dalam praktik. Tetapi ketika saya bertanya, "Apakah data Anda sesuai dengan asumsi model?" Saya hanya mendapatkan tatapan kosong dari wajah mereka. Jawaban Anda dan terutama bagian terakhir membuat saya sangat senang.
TenaliRaman

9
+1 Wow, saya sudah ada untuk sementara waktu tetapi saya pikir saya belum pernah melihat jawaban untuk mendapatkan 50+ upvotes dalam satu hari. Ini adalah pencapaian yang benar-benar mengesankan.
amoeba

7
Transformasi kutub, seperti yang saya lihat, sangat berguna di sini sebagai contoh pertama dan bebas jargon terhadap teknik pengelompokan kernel - di mana pra-transformasi semacam ini adalah bagaimana cara mendapatkan metode pembelajaran linear untuk bekerja.
Mikael Vejdemo-Johansson

7

Saya hanya ingin menambahkan jawaban @ DavidRobinson bahwa pengelompokan ke varians kluster total minimal sebenarnya merupakan masalah optimisasi kombinatorial , di mana k-Means hanya satu teknik - dan mengingat sifat "satu tembakan" yang terakhir, "keturunan paling curam" lokal, yang sangat buruk juga. Juga, mencoba untuk secara substansial meningkatkan "tulang-telanjang" k-Berarti dengan entah bagaimana (tapi cepat!) Mencari tahu di mana benih cluster seharusnya, dikutuk sejak awal: karena benih berdampak (secara drastis!) Cluster terakhir, jumlahnya untuk "mengetahui" apa yang optimal adalah ... sebelum benar-benar menghitungnya.

Namun, karena sebagian besar masalah pengoptimalan, namun mungkin dapat menerima beberapa teknik pengoptimalan yang serius . Salah satunya sangat cocok dengan struktur masalah (seperti yang NFL butuhkan!), Dan itu pasti terlihat dalam hasilnya. Saya tidak ingin membuat iklan di sini (itu akan - dan memang demikian - melawan etiket), jadi jika Anda tertarik, baca saja di sini dan buat penilaian Anda sendiri.

Yang sedang berkata, saya setuju dengan @ttnphns bahwa k-Means tentu saja tidak mengidentifikasi Gaussian Mixture - fungsi biaya dari kedua masalah tersebut sangat berbeda. Ternyata menemukan yang paling pas (dalam hal probabilitas model yang diberikan data) Gaussian Mixture juga merupakan masalah optimisasi kombinatorial - dan yang juga ada teknik optimisasi yang serius . Sekali lagi, tidak ada iklan: Anda dapat mencapai kesimpulan Anda sendiri di sini - Saya hanya akan mengatakan bahwa algoritma yang dibahas di sana memang dapat mengidentifikasi cluster dengan benar seperti gambar terakhir di pos @ DavidRobinson . Bahkan dengan benar (yaitu, dalam cara yang didefinisikan secara matematis dengan baik) memecahkan masalah abadi pencilan, yaitu, titik data yang bukan milik salah satu dari cluster karena mereka hanya benar-benar acak (terkenal, mereka benar - benar menggagalkan k-Means misalnya). Ini dilakukan dengan memiliki satu tambahan, distribusi seragam bersaing dengan Gaussians ... dan hasil yang luar biasa adalah bahwa pada data yang terdistribusi secara seragam, memang melaporkan tidak ada apa - apa di sana (saya belum pernah melihat itu di tempat lain).

Sekarang jelas, menurut NFL, dan seperti yang Anda tunjukkan dengan tepat , bahkan Campuran Gaussian yang optimal secara global dengan identifikasi outlier bergantung pada asumsi sebelumnya - yaitu bahwa data memang didistribusikan secara normal. Untungnya meskipun, berkat UU Nomor besar, banyak fenomena alam yang sesuai dengan asumsi tersebut.

DISCLAIMER: dengan permintaan maaf terdalam saya, saya menulis kedua makalah di atas, dan algoritma yang mereka diskusikan.

PS Saya bertemu Macready di sebuah konferensi sekali - seorang pria yang sangat cerdas dan baik!


Ini seharusnya menjadi jawaban untuk pertanyaan itu.
Michael Chernick

3
Sebenarnya ADALAH jawaban, Michael: k-Berarti PRETENDS untuk menyelesaikan apa yang sebenarnya merupakan masalah optimisasi kombinatorial ... namun jelas TIDAK BUKAN (tidak dengan cara apa pun)! Juga, k-Means mengasumsikan (dengan desain) distribusi bola, yang sangat timpang akan membuat Anda menangis (gandakan salah satu dimensi dengan dua, dan dapatkan sesuatu yang sama sekali berbeda, apa pun benih "pintar" Anda!). Dan pertanyaan tentang pencilan (hadir dalam data dunia nyata APA PUN yang pernah saya lihat!) Sama sekali tidak dibahas dalam k-Means, meskipun mereka benar-benar menghancurkan pretensi apa pun yang bisa dimiliki oleh k-Means dengan pengelompokan "serius".
Emanuel Falkenauer

1
@EmanuelFalkenauer, selamat datang di situs. Saya memberikan suara (+1) untuk jawaban Anda, tetapi sedikit sok. Bagaimana bisa K- berpura - pura sesuatu untuk sesuatu, itu bukan manusia? Itu melakukan apa yang dilakukannya, dan tidak buruk, untuk metode sederhana / cepat.
ttnphns

@ttnphns: Terima kasih atas sambutannya, dan upvote! Ya tentu saja k-Means tidak berpura-pura (itu hanya sepotong kode - buruk!), Tetapi orang-orang yang mempromosikannya melakukannya - seperti yang diketahui OP. Saya setuju dengan pernyataan Anda bahwa ini adalah metode "sederhana / cepat" - tetapi masalah terbesarnya adalah mengandalkan outputnya pada data apa pun tetapi yang paling sederhana mendekati bunuh diri: tidak hanya membuat asumsi yang tidak memenuhi sebagian besar waktu, tetapi bahkan ketika mereka, itu melakukan pekerjaan yang mengerikan. Anda hanya tidak menyelesaikan masalah kombinatorial dengan keturunan paling curam. ;-)
Emanuel Falkenauer

6

Secara logis, kelemahan dari K-means adalah:

  • membutuhkan keterpisahan linear dari cluster
  • perlu menentukan jumlah cluster
  • Algoritma: Prosedur Loyds tidak menyatu dengan global maksimum yang sebenarnya bahkan dengan inisialisasi yang baik ketika ada banyak titik atau dimensi

Tapi K-means lebih baik dari yang kita pikirkan. Saya menjadi sangat antusias tentang hal itu setelah mengujinya terhadap metode pengelompokan lain (spektral, kepadatan ...) dan LDA dalam klasifikasi teks kehidupan nyata dari satu juta teks: K-means memiliki akurasi yang jauh lebih baik daripada LDA misalnya (88% vs 59%). Beberapa metode pengelompokan lain baik, tetapi K-means dekat dengan yang teratas ... dan lebih terjangkau dalam hal kompleksitas.

Saya tidak pernah membaca tentang metode pengelompokan yang secara universal lebih baik pada berbagai masalah. Tidak mengatakan K-means secara universal lebih baik, hanya saja tidak ada superhero pengelompokan universal sejauh yang saya tahu. Banyak artikel, banyak metode, bukan revolusi sejati (dalam pengalaman pribadi saya yang terbatas menguji beberapa di antaranya).

Alasan utama mengapa kelemahan logis dari K-means sering hanya jelas adalah bahwa titik pengelompokan dalam bidang 2D adalah sesuatu yang jarang Anda lakukan dalam pembelajaran mesin. Banyak hal dari intuisi geometris yang benar dalam 2D, 3D ... tidak relevan dalam dimensi vektor ruang yang agak tinggi atau abstrak (seperti sekumpulan kata, vektor variabel ...)

Keterpisahan linear: Anda jarang harus berurusan dengan cluster melingkar dalam data kehidupan nyata. Bahkan lebih baik untuk berasumsi bahwa mereka tidak ada dalam kasus-kasus ini. Mengizinkan algoritme Anda untuk mencari mereka akan memungkinkannya untuk menemukan kelompok lingkaran yang aneh dalam kebisingan. Asumsi linier dalam K-means membuatnya sering lebih kuat.

Jumlah cluster: Seringkali tidak ada jumlah cluster ideal yang ingin Anda lihat. Untuk klasifikasi teks misalnya, mungkin ada 100 kategori, 105, 110 ... semuanya agak subjektif. Menentukan jumlah cluster menjadi setara dengan menentukan granularity global. Semua metode clustering memerlukan spesifikasi granularity.

10banyak

Tetapi semua algoritma pengelompokan memiliki keterbatasan seperti itu. Misalnya dalam pengelompokan Spectral: Anda tidak dapat menemukan vektor eigen yang sebenarnya, hanya perkiraan.

Untuk waktu komputasi yang sama, pustaka LDA yang dioptimalkan cukup kurang baik daripada K-means buatan kami (tidak dioptimalkan dengan sempurna). Sejak itu, saya berpikir sedikit berbeda.


1

Untuk memahami kelemahan dari K-means, saya suka memikirkan apa model di baliknya.

KK

Jika kita membuat probabilitas berada di masing-masing Kσ2sayaσ2Kσ20

Jadi, apa yang dikatakan di sini tentang kekurangan K-means?

  1. K-means mengarah ke kluster yang terlihat seperti Gaussian multivarian.
  2. Karena varians antar variabel adalah sama, K-means mengarah ke kelompok yang terlihat bulat.
  3. K
  4. K-means cenderung ke arah kelompok yang berukuran sama.

K-means sebenarnya adalah algoritma yang sangat membatasi. Keuntungannya adalah dengan asumsi di atas, Anda dapat melakukan algoritma dengan cukup cepat. Tetapi jika kinerja pengelompokan adalah perhatian utama Anda, K-means biasanya terlalu membatasi dalam situasi nyata.


2
Saya tidak bisa sepenuhnya setuju. Klaim K-berarti kasus khusus dari campuran Gaussian adalah peregangan yang jauh. K-means tidak mengasumsikan tipe distribusi tertentu, seperti normal (oleh karena itu bukan tanah probabilistik). Itu mengasumsikan cluster yang tidak tumpang tindih (yaitu tidak ada "campuran"). Ini mengasumsikan cluster bola tetapi lebih tepat untuk mengatakan itu mengasumsikan poligon cembung sel Voronoi. Mungkin benar untuk mengatakan K-means tidak "memodelkan" apa pun, itu tidak memiliki referensi langsung ke proses pembuatan data. K-berarti "cenderung ke arah kelompok-kelompok berukuran [dengan jumlah poin] yang sama" - belum tentu.
ttnphns

4
@ttnphns Dapat ditunjukkan bahwa k-means memang merupakan kasus khusus GMM: en.wikipedia.org/wiki/K-means_clustering#Gaussian_Mixture_Model
TrynnaDoStat

It can be shown that. Dengan peregangan yang memadai, apa pun bisa "ditampilkan" sebagai kekerabatan, di luar akal.
ttnphns

2
@ttnphns Tidak, semuanya tidak dapat ditampilkan secara matematis.
TrynnaDoStat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.