Saya membaca bahwa algoritma k-means hanya konvergen ke minimum lokal dan bukan ke minimum global. Kenapa ini? Saya secara logis dapat memikirkan bagaimana inisialisasi dapat mempengaruhi pengelompokan akhir dan ada kemungkinan pengelompokan sub-optimal, tetapi saya tidak menemukan apa pun yang secara matematis akan membuktikannya.
Juga, mengapa k-berarti proses berulang? Tidak bisakah kita hanya mendiferensiasikan sebagian fungsi obyektif ke centroid, menyamakannya dengan nol untuk menemukan centroid yang meminimalkan fungsi ini? Mengapa kita harus menggunakan gradient descent untuk mencapai minimum langkah demi langkah?
clustering
k-means
convergence
gradient-descent
minimum
Prateek Kulkarni
sumber
sumber
Jawaban:
Anda dapat melihat k-means sebagai versi khusus dari algoritma EM, yang mungkin sedikit membantu.
Katakanlah Anda memperkirakan distribusi normal multivariat untuk setiap cluster dengan matriks kovarians yang tetap pada matriks identitas untuk semua, tetapi variabel rata-rata mana i adalah indeks cluster. Jelas, jika parameter { μ i } diketahui, Anda dapat menetapkan setiap titik p kluster kemungkinan maksimumnya (mis. Μ i yang jaraknya ke p dalam minimal). Algoritma EM untuk masalah ini hampir setara dengan k-means.μi i {μi} p μi p
Sebaliknya, jika Anda tahu titik mana yang termasuk kelompok mana, Anda dapat memperkirakan optimal . Bentuk solusi tertutup untuk ini (yang menemukan optimum global) pada dasarnya mengatakan bahwa untuk menemukan model kemungkinan maksimum { μ i } Anda mengintegrasikan seluruh tugas yang mungkin dari poin ke cluster. Karena bahkan dengan hanya tiga puluh poin dan dua kelompok, ada sekitar satu miliar penugasan yang mungkin, ini tidak mungkin untuk dihitung.μi {μ^i}
Sebagai gantinya, kita dapat menebak beberapa parameter tersembunyi (atau parameter model) dan mengulangi dua langkah (dengan kemungkinan berakhir pada maksimum lokal). Jika Anda mengijinkan masing-masing cluster untuk mengambil sebagian tanggung jawab untuk sebuah poin, Anda berakhir dengan EM, jika Anda hanya menetapkan cluster optimal, Anda mendapatkan k-means.
Jadi, ringkasan eksekutif: dalam istilah probabilistik, ada solusi global, tetapi mengharuskan Anda untuk mengulangi semua kemungkinan pengelompokan. Jelas jika Anda memiliki fungsi objektif, hal yang sama berlaku. Anda bisa mengulangi semua solusi dan memaksimalkan fungsi objektif, tetapi jumlah iterasi eksponensial dalam ukuran data Anda.
sumber
Ini adalah masalah yang ingin Anda pecahkan:
Variabel biner menunjukkan apakah titik i ditugaskan ke cluster j . Simbol p i dan c j menunjukkan koordinat titik ke- i dan centroid dari cluster ke- j . Mereka berdua berada di R d , di mana d adalah dimensi dari titik data.xij i j pi cj i j Rd d
Kelompok kendala pertama mengatakan bahwa setiap titik harus ditugaskan tepat satu cluster. Kelompok kedua kendala (yang kami belum didefinisikan secara matematis) mengatakan bahwa koordinat centroid cluster sebenarnya tergantung pada nilai-nilai x i j variabel. Kita bisa misalnya mengungkapkan kendala ini sebagai berikut: c j = Σ i x i j p i jj xij
Namun, alih-alih menangani kendala non-linear ini, dalam K-Means kita (kurang-lebih) menyelesaikan masalah yang berbeda yang memiliki solusi optimal yang sama dengan masalah asli kita:
Alih-alih meminimalkan jarak ke centroid, kami meminimalkan jarak ke sembarang titik yang akan memberikan solusi yang lebih baik. Ternyata titik-titik ini tepat merupakan pusat massa.
Sekarang untuk menyelesaikan masalah ini, kita mengulangi langkah 2-3 dari algoritma ini, hingga konvergensi:
Di setiap langkah, fungsi tujuan meningkat (atau tetap sama ketika algoritma bertemu), karena solusi yang ditemukan pada langkah sebelumnya adalah di ruang pencarian langkah saat ini. Namun, karena kami memperbaiki beberapa variabel di setiap langkah, ini adalah prosedur pencarian lokal yang tidak menjamin optimalitas.
Untungnya, masalah optimasi dalam langkah 2 dan 3 dapat diselesaikan dalam bentuk tertutup. Jika kita tahu (yaitu jika kita tahu ke cluster mana setiap titik ditugaskan), nilai terbaik untuk yxij yj yj xij yj
sumber
Contoh sederhana mungkin membantu ..
Mari kita mendefinisikan set poin yang akan dikelompokkan sebagai
A = {1,2,3,4}
.Katakanlah Anda mencoba menemukan 2 klaster yang sesuai untuk A (2-berarti). Ada (setidaknya) dua pengaturan berbeda yang memenuhi kondisi stasioner k-means.
Pengaturan 1:
Di sini tujuannya adalah 2. Sebenarnya ini adalah titik pelana (coba
center1 = 1 + epsilon
dancenter1 = 1 - epsilon
)Pengaturan 1:
di sini tujuannya adalah 1/4.
Jika k-means akan diinisialisasi sebagai pengaturan pertama maka itu akan macet .. dan itu tidak berarti minimum global.
Anda dapat menggunakan varian dari contoh sebelumnya untuk membuat dua minimum lokal yang berbeda. Untuk
A = {1,2,3,4,5}
, pengaturancluster1={1,2}
dancluster2={3,4,5}
akan menghasilkan nilai objektif yang sama dengancluster1={1,2,3}
dancluster2={4,5}
Akhirnya, apa yang akan terjadi jika Anda memilih
vs.
?
sumber
[Ini sebelum @Peter menjawab]
Setelah diskusi kecil (di bagian komentar), saya merasa saya harus menjawab pertanyaan saya sendiri.
Saya percaya bahwa ketika saya sebagian membedakan fungsi obyektif sehubungan dengan satu centroid, titik-titik dalam cluster centroid lain lenyap dalam turunan. Jadi, centroid yang bisa kita dapatkan hanya akan meminimalkan jumlah jarak kuadrat dari hanya cluster tertentu.
@whuber menambahkan:
Akan luar biasa jika ada yang menambahkan.
sumber
Semua orang telah menjelaskan semuanya, tetapi saya ingin menambahkan bahwa jika data sampel tidak didistribusikan sebagai distribusi Gaussian, maka data tersebut dapat menempel ke minimum lokal. Dalam algoritme K-means kami sebenarnya berusaha untuk mendapatkannya.
sumber