Для задания меня попросили предоставить доказательство того, что k-means сходится за конечное число шагов.
Вот что я написал:
Шаг 2 относится к шагу, который помечает каждую точку данных ее ближайшим центром кластера, а шаг 3 - это шаг, на котором центры обновляются путем взятия среднего значения.
Этого недостаточно для доказательства сходимости за конечное число шагов. Энергия может продолжать уменьшаться, но это не исключает возможности того, что центральные точки могут прыгать без значительного изменения энергии. Другими словами, может быть несколько минимумов энергии, и алгоритм может перемещаться между ними, нет?
Ответы:
Во-первых, существует не более способов разбить точек данных на кластеров; каждый такой раздел можно назвать «кластеризацией». Это большое, но конечное число. Для каждой итерации алгоритма мы создаем новую кластеризацию, основанную только на старой кластеризации. Заметить, чтоКN N К
Поскольку алгоритм выполняет итерацию функции, область которой является конечным множеством, итерация должна в конечном итоге войти в цикл. Цикл не может иметь длину больше потому что в противном случае (2) у вас будет некоторая кластеризация, которая будет стоить дешевле, чем она сама, что невозможно. Следовательно, цикл должен иметь длину ровно . Следовательно, k-means сходится за конечное число итераций.11 1
источник
Чтобы добавить что-то: сходится ли алгоритм или нет, также зависит от вашего критерия остановки. Если вы остановите алгоритм, как только назначения кластера больше не изменятся, то вы можете фактически доказать, что алгоритм не обязательно сходится (при условии, что назначение кластера не имеет детерминированного разрыва связи в случае, если несколько центроидов имеют одинаковое расстояние).
Здесь у вас есть 8 точек данных (точки) и два центроида (красные кресты). Теперь точки зеленых данных имеют одинаковое расстояние до левого и правого центроида. То же самое верно для синих точек данных. Предположим, что функция присваивания в этом случае не является детерминированной. Далее мы предполагаем, что на итерации 1 зеленые точки назначаются левому кластеру, а синие точки назначаются правому кластеру. Затем мы обновляем центроиды. Оказывается, они на самом деле остаются в одном месте. (это простой расчет. Для левого центроида вы усредняете координаты двух левых черных точек и двух зеленых точек -> (0, 0,5). То же самое для правого центроида).
Затем на итерации 2 ситуация выглядит снова так же, но теперь мы предполагаем, что наша (в случае связей) недетерминированная функция присваивания назначает зеленые точки правому кластеру и синие точки левому кластеру. Снова центроиды не изменятся.
Итерация 3 снова аналогична итерации 1. Таким образом, у нас есть случай, когда назначения кластера постоянно меняются, а алгоритм (с этим критерием остановки) не сходится.
источник