Кластеризация k-средних – один из самых простых и наиболее часто используемых алгоритмов кластеризации. Задается число кластеров k. Алгоритм вычисляет центроиды (centroids) – центры тяжести кластеров.
Если не задано количество выделяемых кластеров, то значение n_clusters по умолчанию будет равно 8.
Создается экземпляр класса KMeans и задается количество выделяемых кластеров.
Методу fit и передаются данные в качестве аргумента.
Во время работы алгоритма каждой точке обучающих данных X присваивается метка кластера. Атрибут kmeans.labels_. Запуск метода predict на обучающем наборе возвращает тот же самый результат, что содержится в атрибуте labels_.
Алгоритм k-средних может описать относительно простые формы. Алгоритм k-средних предполагает, что все кластеры в определенном смысле имеют одинаковый «диаметр», он всегда проводит границу между кластерами так, чтобы она проходила точно посередине между центрами кластеров. Это может привести не к тем результатам, которые ожидаются.
Алгоритм k-средних предполагает, что все направления одинаково важны для каждого кластера. Алгоритм k-средних плохо работает, когда кластеры имеют более сложную форму. Не может выделить объекты имеющие вытянутую форму.
Источники
Андреас Мюллер, Сара Гвидо «Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными.», Москва, 2016-17