Алгоритмы кластеризации

Наборы данных машинного обучения могут содержать миллионы примеров, но не все алгоритмы кластеризации эффективно масштабируются. Многие алгоритмы кластеризации вычисляют сходство между всеми парами примеров, что означает, что время их выполнения увеличивается пропорционально квадрату количества примеров \(n\), обозначаемого как \(O(n^2)\) в обозначении сложности. Алгоритмы \(O(n^2)\) непрактичны для наборов данных с миллионами примеров.

Алгоритм k-средних имеет сложность \(O(n)\), что означает, что алгоритм масштабируется линейно с \(n\). Этот алгоритм будет в центре внимания данного курса.

Типы кластеризации

Исчерпывающий список различных подходов к кластеризации см. в «Комплексном обзоре алгоритмов кластеризации» Сюй, Д. и Тиан, Ю. Энн. Данные. наук. (2015) 2: 165. Каждый подход лучше всего подходит для конкретного распределения данных. В этом курсе кратко обсуждаются четыре распространенных подхода.

Центроидная кластеризация

Центроид кластера — это среднее арифметическое всех точек кластера. Кластеризация на основе центроидов организует данные в неиерархические кластеры. Алгоритмы кластеризации на основе центроидов эффективны, но чувствительны к начальным условиям и выбросам. Из них наиболее широко используется k-средние. Он требует от пользователей определения количества центроидов k и хорошо работает с кластерами примерно одинакового размера.

Примеры сгруппированы в кластеры с использованием кластеризации на основе центроидов.            Линии показывают границы между кластерами.
Рисунок 1: Пример кластеризации на основе центроидов.

Кластеризация на основе плотности

Кластеризация на основе плотности соединяет смежные области с высокой плотностью примеров в кластеры. Это позволяет обнаружить любое количество кластеров любой формы. Выбросы не назначаются кластерам. Эти алгоритмы испытывают трудности с кластерами различной плотности и данными большой размерности.

Примеры сгруппированы в два кластера с использованием кластеризации на основе плотности.       Кластеры не разделяются линейно.
Рисунок 2: Пример кластеризации на основе плотности.

Кластеризация на основе распределения

Этот подход к кластеризации предполагает, что данные состоят из вероятностных распределений, таких как распределения Гаусса . На рисунке 3 алгоритм, основанный на распределении, группирует данные в три распределения Гаусса. По мере увеличения расстояния от центра распределения вероятность того, что точка принадлежит распределению, уменьшается. Полосы показывают это уменьшение вероятности. Если вам неудобно предполагать определенное базовое распределение данных, вам следует использовать другой алгоритм.

Примеры кластеризованы с использованием кластеризации на основе распределения. Затенение плотности примеров в каждом кластере показывает, как кластеры отображаются на распределения.
Рисунок 3: Пример кластеризации на основе распределения.

Иерархическая кластеризация

Иерархическая кластеризация создает дерево кластеров. Неудивительно, что иерархическая кластеризация хорошо подходит для иерархических данных, таких как таксономии. Для примера см . «Сравнение 61 секвенированного генома Escherichia coli» Оксаны Лукьянченко, Труди Вассенаар и Дэйва Ассери. Любое количество кластеров можно выбрать, срезав дерево на нужном уровне.

Животные сгруппированы с использованием иерархического дерева.
Рисунок 4: Пример иерархической древовидной кластеризации животных.