Я намагаюся зрозуміти різні алгоритми кластеризації k-засобів, які в основному реалізовані в мовному stats
пакеті R
.
Я розумію алгоритм Ллойда та онлайн-алгоритм MacQueen. Я розумію їх так:
Алгоритм Ллойда:
Спочатку вибираються випадкові спостереження 'k', які будуть служити центроїдами кластерів 'k'. Потім наступні кроки відбуваються в ітерації до сходження центроїдів.
- Розраховується евклідова відстань між кожним спостереженням та обраними центроїдами.
- Спостереження, які є найближчими до кожного центроїда, позначаються у відрах "k".
- Середнє значення всіх спостережень у кожному відрі служить новими центроїдами.
- Нові центроїди замінюють старі центроїди і ітерація повертається до етапу 1, якщо старий і новий центроїди не зблизилися.
Умови конвергенції такі: старий і новий центроїди точно однакові, різниця між центроїдами невелика (порядку 10 ^ -3) або досягається максимальна кількість ітерацій (10 або 100).
Алгоритм MacQueen:
Це онлайн-версія, де перші "k" екземпляри вибираються як центроїди.
Потім кожен екземпляр поміщається у відра залежно від того, який центроїд найближчий до цього екземпляра. Відповідний центроїд перераховується.
Повторіть цей крок, поки кожен екземпляр не поміститься у відповідне відро.
Цей алгоритм має лише одну ітерацію, і цикл продовжується для 'x' екземплярів
Алгоритм Хартігана-Вонга:
- Призначте всі точки / екземпляри до випадкових відрах і обчисліть відповідний центроїд.
- Починаючи з першої інстанції, знайдіть найближчий центроїд і попустіть це відро. Якщо відро змінилося, то перерахуйте нові центроїди, тобто центроїд новопризначеного відра і центроїд старого призначення відра, оскільки це два центроїди, на які впливає зміна
- Проведіть цикл через усі точки і отримайте нові центроїди.
- Зробіть другу ітерацію пунктів 2 і 3, яка виконує певну операцію з очищення та призначає бродячі точки для виправлення відра.
Отже, цей алгоритм виконує 2 ітерації, перш ніж ми побачимо результат конвергенції.
Тепер я не впевнений, що те, що я вважаю в пункті 4 алгоритму Хартіган-Вонг, є правильним методом алгоритму. Моє запитання, якщо наступний метод для Хартіган-Вонга є правильним методом реалізації k-засобів? Чи є лише два ітерації для цього методу? якщо ні, то яка умова конвергенції (коли припинити)?
Ще одне можливе пояснення реалізації - це я розумію.
- Призначте всі точки / екземпляри до випадкових відрах і обчисліть відповідний центроїд.
- Починаючи з першого примірника, знайдіть найближчий центроїд і призначте це відро. Якщо відро змінилося, то перерахуйте нові центроїди, тобто центроїд новопризначеного відра і центроїд старого призначення відра, оскільки це два центроїди, на які впливає зміна.
- Як тільки зміниться відро для будь-якої точки, поверніться до першої інстанції та повторіть кроки ще раз.
- Ітерація закінчується, коли всі екземпляри повторюються і жодна з точок не змінює відрізки.
Таким чином, існує багато ітерацій, які починаються з початку набору даних знову і знову кожного разу, коли екземпляр змінює відра.
Будь-які пояснення були б корисними, і, будь ласка, повідомте мене, якщо я розумію будь-який із цих методів неправильно.