Щоб додати щось: зближення алгоритму чи ні також залежить від критерію зупинки. Якщо ви зупините алгоритм, як тільки призначення кластера більше не змінюються, ви можете фактично довести, що алгоритм не обов'язково збігається (за умови, що в призначенні кластера немає детермінованого вимикача зв'язку, якщо кілька центроїдів мають однакову відстань).
Тут у вас є 8 точок даних (крапки) та два центроїди (червоні хрести). Тепер точки зелених даних мають однакову відстань як до лівого, так і до правого центру. Те саме стосується синіх точок даних. Припустимо, що функція призначення не є детермінованою в цьому випадку. Далі ми припускаємо, що при ітерації 1 зелені точки присвоюються лівому кластеру, а сині - присвоюються правому кластеру. Потім ми оновлюємо центроїди. Виявляється, вони насправді залишаються на одному місці. (це простий підрахунок. Для лівого центрального центру ви оцінюєте координати двох лівих чорних крапок і двох зелених точок -> (0, 0,5). Те ж саме для правого центру).
Потім на ітерації 2 ситуація виглядає знову такою ж, але тепер ми припускаємо, що наша (у випадку зв’язків) недетермінована функція присвоєння призначає зелені точки правому кластеру, а сині точки - лівому кластеру. Знову центроїди не зміняться.
Ітерація 3 знову така ж, як ітерація 1. Таким чином, у нас є випадок, коли призначення кластерів постійно змінюються і алгоритм (з цим критерієм зупинки) не зближується.
≤<