Интересно, можно ли в R выполнить кластеризацию данных, имеющих смешанные переменные данных? Другими словами, у меня есть набор данных, содержащий как числовые, так и категориальные переменные внутри, и я нахожу лучший способ их кластеризации. В SPSS я бы использовал двухступенчатый кластер. Интересно, смогу ли я найти в R аналогичные методы? Мне сказали о пакете poLCA, но я не уверен ...
r
clustering
mixed-type-data
Джорджо Спедикато
источник
источник
Ответы:
Это может прийти поздно, но попробуйте klaR ( http://cran.r-project.org/web/packages/klaR/index.html )
Он использует неиерархический алгоритм k-режимов, который основан на простом сопоставлении в качестве функции расстояния, поэтому расстояние δ между переменной m двух точек данныхx и y определяется как
В пакете есть недостаток: если две точки данных имеют одинаковое расстояние до центра кластера, первая в ваших данных выбирается вместо случайной точки, но вы можете легко изменить бит в коде.
Чтобы приспособиться к кластеризации смешанных переменных, вам нужно будет перейти в код и изменить функцию расстояния, чтобы идентифицировать числовые и нечисловые режимы и переменные.
источник
Другим привлекательным способом обработки переменных смешанных типов является использование матрицы проксимити / подобия из Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Это облегчает унифицированный способ одинаковой обработки всех переменных (тем не менее, помните о проблеме смещения выбора переменных). С другой стороны, на самом деле не существует золотого универсального способа определения расстояния для переменных смешанных типов. Все зависит от контекста приложения.
источник
Вы можете использовать множественный анализ соответствий для создания непрерывных измерений из категориальных переменных, а затем использовать их с числовыми переменными на втором шаге.
источник
Ну, вы, конечно, можете. Делая категориальные переменные искусственно числовыми. Или используя кластеризацию на основе матрицы расстояний (fpc, вероятно, может сделать это). Сначала вы должны попытаться ответить на вопрос: имеет ли это смысл?
источник
многозначные символы (номинальные или порядковые): 1 для равенства, 0 для остальных (эквивалент простого коэффициента сопоставления)
источник
Если возможных значений категориальных переменных не слишком много, то вы можете подумать о создании двоичных переменных из этих значений. Вы можете рассматривать эти двоичные переменные как числовые переменные и запускать кластеризацию. Это то, что я сделал для своего проекта.
источник
Кластеризация k-прототипов могла бы быть более подходящей здесь. Он объединяет k-моды и k-средние и способен кластеризовать смешанные числовые / категориальные данные. Для R используйте пакет 'clustMixType'.
https://cran.r-project.org/web/packages/clustMixType/clustMixType.pdf
источник
VarSelLCM
пакетные предложенияО CRAN , и описано больше в статье .
Преимущество перед некоторыми из предыдущих методов заключается в том, что он предлагает некоторую помощь в выборе количества кластеров и обрабатывает пропущенные данные. Хорошее блестящее приложение при условии, также не будет осуждено.
источник