Мне нужно использовать двоичные переменные (значения 0 и 1) в k-средних. Но k-means работает только с непрерывными переменными. Я знаю, что некоторые люди все еще используют эти двоичные переменные в k-средних, игнорируя тот факт, что k-средние предназначены только для непрерывных переменных. Это для меня неприемлемо.
Вопросов:
- Так каков статистически / математически правильный способ использования бинарных переменных в k-средних / иерархической кластеризации?
- Как внедрить решение в SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
источник
источник
Ответы:
Вы правы, что кластеризация k-средних не должна выполняться с данными смешанных типов. Поскольку k-means - это по сути простой алгоритм поиска, позволяющий найти разбиение, которое минимизирует квадратные евклидовы расстояния внутри кластера между кластерными наблюдениями и центроидом кластера, его следует использовать только с данными, для которых квадратные евклидовы расстояния будут иметь смысл.
На этом этапе вы можете использовать любой метод кластеризации, который может работать с матрицей расстояний, вместо использования исходной матрицы данных. (Обратите внимание, что для k-средних требуется последнее.) Наиболее популярным выбором является разбиение вокруг медоидов (PAM, которое по сути то же самое, что и k-means, но использует наиболее центральное наблюдение, а не центроид), различные подходы иерархической кластеризации (например, , медиана, одиночная связь и полная связь; при иерархической кластеризации вам нужно будет решить, где « вырезать дерево » для получения окончательных назначений кластера), и DBSCAN, который обеспечивает гораздо более гибкие формы кластера.
Вот простая
R
демонстрация (примечание, на самом деле есть 3 кластера, но данные выглядят в основном как 2 кластера):Мы можем начать с поиска по разному количеству кластеров с помощью PAM:
Эти результаты можно сравнить с результатами иерархической кластеризации:
Медианный метод предполагает 2 (возможно, 3) кластера, единственный поддерживает только 2, но полный метод может предложить 2, 3 или 4 на мой взгляд.
Наконец, мы можем попробовать DBSCAN. Для этого необходимо указать два параметра: eps, «расстояние достижимости» (насколько близко два наблюдения должны быть связаны друг с другом) и minPts (минимальное количество точек, которые необходимо соединить друг с другом, прежде чем вы захотите назвать их 'кластер'). Основное правило для minPts - использовать на единицу больше, чем количество измерений (в нашем случае 3 + 1 = 4), но слишком маленькое число не рекомендуется. Значение по умолчанию для
dbscan
5; мы будем придерживаться этого. Один из способов думать о расстоянии достижимости - посмотреть, какой процент расстояний меньше любого заданного значения. Мы можем сделать это, изучив распределение расстояний:Сами расстояния, кажется, сгруппированы в визуально различимые группы «ближе» и «дальше». Значение .3 наиболее четко различает две группы расстояний. Чтобы изучить чувствительность вывода к различным вариантам eps, мы также можем попробовать .2 и .4:
Использование
eps=.3
действительно дает очень чистое решение, которое (по крайней мере, качественно) согласуется с тем, что мы видели из других методов выше.Поскольку нет значимой кластерности 1 , мы должны быть осторожны, пытаясь сопоставить, какие наблюдения называются «кластером 1» из разных кластеров. Вместо этого мы можем формировать таблицы, и если большинство наблюдений, называемых «кластер 1» в одном подходе, называются «кластер 2» в другом, мы увидим, что результаты по-прежнему практически схожи. В нашем случае разные кластеры в основном очень стабильны и каждый раз помещают одни и те же наблюдения в одни и те же кластеры; отличается только полная иерархическая кластеризация связей:
Конечно, нет никакой гарантии, что любой кластерный анализ восстановит истинные скрытые кластеры в ваших данных. Отсутствие истинных меток кластера (которые будут доступны, скажем, в ситуации логистической регрессии) означает, что огромное количество информации недоступно. Даже с очень большими наборами данных кластеры могут быть недостаточно хорошо разделены, чтобы их можно было полностью восстановить. В нашем случае, поскольку мы знаем истинное членство в кластере, мы можем сравнить это с выходными данными, чтобы увидеть, насколько хорошо это было сделано. Как я отмечал выше, на самом деле существует 3 скрытых кластера, но вместо этого данные выглядят как 2 кластера:
источник
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
.. как вы к этому пришли? используя высоту 0,3?Посмотрите на эту статью Финча, http://www.jds-online.com/files/JDS-192.pdf . В нем описывается как причина, по которой применение непрерывных методов к двоичным данным может привести к неточной кластеризации данных, так и, что более важно, каковы некоторые варианты выбора соответствующих функций расстояния. Он не отвечает, как кластеризовать с помощью k-средних, а скорее как правильно кластеризовать двоичные данные, используя неевклидовы метрики и иерархический метод, такой как Вард.
источник