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.
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?
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.
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 :
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:
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:
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:
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.