Saya telah mencoba untuk memahami berbagai algoritma pengelompokan k-means terutama yang diterapkan dalam stats
paket R
bahasa.
Saya mengerti algoritma Lloyd dan algoritma online MacQueen. Cara saya memahaminya adalah sebagai berikut:
Algoritma Lloyd:
Awalnya pengamatan acak 'k' dipilih yang akan berfungsi sebagai centroid dari kelompok 'k'. Kemudian langkah-langkah berikut terjadi dalam iterasi sampai centroid bertemu.
- Jarak Euclidean antara setiap pengamatan dan centroid yang dipilih dihitung.
- Pengamatan yang paling dekat dengan setiap centroid ditandai dalam ember 'k'.
- Rata-rata dari semua pengamatan di setiap ember berfungsi sebagai centroid baru.
- Centroid baru menggantikan centroid lama dan iterasi kembali ke langkah 1 jika centroid lama dan baru tidak bertemu.
Kondisi untuk berkumpul adalah sebagai berikut: centroid lama dan baru persis sama, perbedaan antara centroid kecil (dari urutan 10 ^ -3) atau jumlah maksimum iterasi (10 atau 100) tercapai.
Algoritma MacQueen:
Ini adalah versi online di mana instance 'k' pertama dipilih sebagai centroid.
Kemudian setiap instance ditempatkan dalam ember tergantung pada centroid mana yang paling dekat dengan instance itu. Centroid masing-masing dihitung ulang.
Ulangi langkah ini sampai setiap instance ditempatkan di ember yang sesuai.
Algoritma ini hanya memiliki satu iterasi dan loop berjalan untuk instance 'x'
Algoritma Hartigan-Wong:
- Tetapkan semua poin / instance ke ember acak dan hitung centroid masing-masing.
- Mulai dari instance pertama temukan centroid terdekat dan bawa ember itu. Jika ember berubah maka hitung ulang centroid baru yaitu centroid dari ember yang baru ditetapkan dan centroid dari tugas ember lama karena itu adalah dua centroid yang dipengaruhi oleh perubahan tersebut.
- Lingkari semua titik dan dapatkan centroid baru.
- Lakukan iterasi kedua poin 2 dan 3 yang melakukan semacam operasi pembersihan dan menugaskan kembali poin liar untuk memperbaiki ember.
Jadi algoritma ini melakukan 2 iterasi sebelum kita melihat hasil konvergensi.
Sekarang, saya tidak yakin apakah yang saya pikirkan pada poin 4 dalam algoritma Hartigan-Wong adalah metode algoritma yang benar. Pertanyaan saya adalah, apakah metode berikut untuk Hartigan-Wong adalah metode yang benar untuk mengimplementasikan k-means? Apakah hanya ada dua iterasi untuk metode ini? jika tidak, bagaimana kondisi konvergensi (kapan harus berhenti)?
Penjelasan implementasi lain yang mungkin saya mengerti adalah.
- Tetapkan semua poin / instance ke ember acak dan hitung centroid masing-masing.
- Mulai dari instance pertama, temukan centroid terdekat dan tetapkan ember itu. Jika ember berubah maka hitung ulang centroid baru yaitu centroid dari ember yang baru ditetapkan dan centroid dari tugas ember lama karena itu adalah dua centroid yang dipengaruhi oleh perubahan.
- Setelah ada perubahan dalam bucket untuk titik mana pun, kembali ke instance pertama dan ulangi langkah-langkah lagi.
- Iterasi berakhir ketika semua instance di-iterasi dan tidak ada poin yang berubah.
Dengan cara ini ada banyak iterasi yang dimulai dari awal dataset berulang kali setiap kali ketika instance mengubah ember.
Penjelasan apa pun akan membantu dan tolong beri tahu saya jika saya pemahaman saya untuk salah satu metode ini salah.