Вопрос или проблема
Я провожу кластеризацию по одномерному набору данных и мне нужен способ автоматически определить оптимальное количество кластеров из $k \in \{2, 3, 4, 5, 6\}$. Количество наблюдений для кластеризации невелико (обычно около 10-13). Я думаю, что мне нужно проверить оптимизацию по одной из двух целей (или обеим одновременно) и посмотреть, что сработает лучше:
-
достичь разбиения с наименьшими внутренними вариациями кластера. Интуитивно, я бы выбрал что-то вроде средней внутренней вариации кластера, но меня на самом деле устраивает ситуация, когда некоторые кластеры будут сформированы из одного наблюдения (на самом деле это желательно для выбросов, и именно поэтому я проверяю относительно высокое количество кластеров). А средняя внутренне-кластерная вариация всегда будет способствовать меньшему количеству кластеров.
-
достичь разбиения с наиболее похожими расстояниями между парами наблюдений внутри кластера. Например, если у меня есть объекты $a, b, c, d$ в моем кластере, я хотел бы, чтобы $d(a, b) \approx d(b, c) \approx d(c, d)$, где $d$ является евклидовым расстоянием, а $a, b, c, d$ отсортированы.
Я изучил возможности scikit-learn, и ни одна из них не подходит для моего случая.
Ваша проблема не подходит для машинного обучения. Машинное обучение не даст надежного ответа на саму кластеризацию (параметр) или автоматическое количество кластеров (гиперпараметр). Количество примеров слишком мало (10-13), и количество примеров по отношению к количеству групп (2-5) также слишком низко.
Ответ или решение
Определение оптимального числа кластеров для однородности в однопеременных данных
В процессе кластеризации одномерных данных возникает необходимость выбора оптимального числа кластеров. Принимая во внимание небольшой объем данных (10-13 наблюдений), а также ваши цели — минимизация внутренней дисперсии кластеров и максимизация однородности расстояний между парами наблюдений в кластерах, важно рассмотреть различные методы и индексы для выбора числа кластеров.
Внутренние меры качества кластеризации
-
Средняя внутрикластерная дисперсия (WCSS):
- Данный метод позволяет оценивать рассеяние данных внутри кластеров. Следует рассмотреть применение модифицированной версии, которая не будет слишком сильно упираться в минимизацию количества кластеров. Можно, например, использовать взвешенное значение WCSS, учитывающее количество точек в каждом кластере, для большего значения k.
-
Индекс Силуэт:
- Индекс силуэта измеряет, насколько хорошо наблюдения соответствуют своему кластеру по сравнению с ближайшими кластерами. Этот метод может помочь в выборе числа кластеров от 2 до 5. Чем выше значение индекса силуэта, тем лучше наблюдения сгруппированы.
- Рассмотрение вариации индекса силуэта, где учитывается не только среднее, но и отклонение расстояний в кластерах.
-
DBI (Davies–Bouldin Index):
- Этот индекс оценивает среднее расстояние между кластерами и их внутреннюю дисперсию. Чем меньше значение DBI, тем лучше качество кластеризации. Это также подходит для однородности кластеров.
Внешние меры качества кластеризации
Если есть заранее известные метки или классы в данных, использование внешних метрик может быть полезным:
-
Кросс-классификация:
- Через анализ распределения объектов в кластерах можно понять, соответствует ли распределение некоторым ожиданиям о групповом поведении.
-
Визуализация:
- Построение графиков (например, методом PCA или t-SNE) для визуализации кластеров может дать понимание, как наблюдения группируются и насколько они однородны внутри кластеров.
Применение нескольких методов
Оптимальным подходом будет использование комбинированного подхода:
- Сначала рассчитайте WCSS для разных значений k, чтобы понять, как изменяется дисперсия.
- Затем используйте индекс силуэта для определения качества кластеризации для каждого k.
- Проанализируйте результаты с использованием DBI для учета расстояний между кластерами.
- Визуализируйте результаты, чтобы наглядно увидеть однородность кластеров.
Заключительные рекомендации
Рекомендуется использовать итеративный подход: начать с малого числа кластеров и постепенно увеличивать значение k, при этом анализируя результаты по вышеупомянутым метрикам. Не забывайте, что в данных с небольшим числом наблюдений (10-13) часто бывает сложно выделить четкие кластеры, и каждый результат может содержать определенный уровень неопределенности.
С помощью данных методов и индексов вам удастся выбрать оптимальное число кластеров с максимальной однородностью, что будет соответствовать вашим аналитическим целям.