Чтобы добавить что-то: сходится ли алгоритм или нет, также зависит от вашего критерия остановки. Если вы остановите алгоритм, как только назначения кластера больше не изменятся, то вы можете фактически доказать, что алгоритм не обязательно сходится (при условии, что назначение кластера не имеет детерминированного разрыва связи в случае, если несколько центроидов имеют одинаковое расстояние).
Здесь у вас есть 8 точек данных (точки) и два центроида (красные кресты). Теперь точки зеленых данных имеют одинаковое расстояние до левого и правого центроида. То же самое верно для синих точек данных. Предположим, что функция присваивания в этом случае не является детерминированной. Далее мы предполагаем, что на итерации 1 зеленые точки назначаются левому кластеру, а синие точки назначаются правому кластеру. Затем мы обновляем центроиды. Оказывается, они на самом деле остаются в одном месте. (это простой расчет. Для левого центроида вы усредняете координаты двух левых черных точек и двух зеленых точек -> (0, 0,5). То же самое для правого центроида).
Затем на итерации 2 ситуация выглядит снова так же, но теперь мы предполагаем, что наша (в случае связей) недетерминированная функция присваивания назначает зеленые точки правому кластеру и синие точки левому кластеру. Снова центроиды не изменятся.
Итерация 3 снова аналогична итерации 1. Таким образом, у нас есть случай, когда назначения кластера постоянно меняются, а алгоритм (с этим критерием остановки) не сходится.
≤<