Я изучаю возможность кластеризации некоторых категориальных данных с помощью python. В настоящее время у меня есть 8 функций, каждая из которых имеет примерно 3-10 уровней.
Как я понял, в этой структуре можно использовать как однократное кодирование с kmeans, так и кммоды, причем kmeans может быть неидеальным с огромными комбинациями функций / уровней из-за проблем с проклятием размерности.
Это правильно?
На данный момент я бы следовал маршруту kmeans, потому что это дало бы мне возможность добавлять некоторые числовые функции, а вычисление статистики силуэта и оценка оптимального количества кластеров кажутся намного проще.
Имеет ли это смысл? Есть ли у вас какие-либо предложения по ситуациям, в которых один подход следует предпочесть другому?
Спасибо
Существуют также варианты, в которых используется подход k-модов для категориальных атрибутов и среднее значение для непрерывных атрибутов.
K-modes имеет большое преимущество перед one-hot+k-means: его можно интерпретировать. Каждый кластер имеет одно явное категориальное значение для прототипа. С k-средними, из-за цели SSQ, однократные переменные имеют наименьшие ошибки, если они находятся между значениями. Это нежелательно.
Обратитесь к этой статье Хуанга (автора Kmodes). http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134.83&rep=rep1&type=pdf
Он упоминает, что если мы используем Kmeans + одно горячее кодирование, это значительно увеличит размер набора данных, если категориальные атрибуты имеют большое количество категорий. Это сделает Kmeans вычислительно затратным. Так что да, ваша идея о проклятии размерности верна.
Также кластерные средства не будут иметь смысла, поскольку 0 и 1 не являются реальными значениями данных. Kmodes, с другой стороны, создает режимы кластеров, которые являются реальными данными и, следовательно, делают кластеры интерпретируемыми.
Для ваших требований как к числовым, так и к категориальным атрибутам, посмотрите на метод k-prototypes, который объединяет kmeans и kmodes с использованием балансирующего весового коэффициента. (Опять же объяснено в статье).