Высокомерная кластеризация данных - PullRequest
0 голосов
/ 19 ноября 2011

Какие алгоритмы кластеризации лучше всего использовать для кластеризации данных с более чем 100 измерениями (иногда даже 1000). Буду признателен, если вы знаете какую-либо реализацию в C, C ++ или особенно C #.

Ответы [ 5 ]

3 голосов
/ 11 декабря 2011

Это сильно зависит от ваших данных.Смотрите Проклятие размерности для общих проблем.Недавнее исследование (Houle et al.) Показало, что вы не можете идти вразрез с числами.Там могут быть тысячи измерений и кластеры данных, и, конечно, есть даже одномерные данные, которые просто не кластеризуются.Это в основном вопрос сигнал-шум.Вот почему, например, кластеризация векторов TF-IDF работает довольно хорошо, особенно с косинусным расстоянием.

Но ключевой момент заключается в том, что вам сначала необходимо понять природу ваших данных.Затем вы можете выбрать подходящие функции расстояния, веса, параметры и ... алгоритмы.

В частности, вам также необходимо знать , что представляет собой кластер для вас.Существует много определений, в частности для многомерных данных.Они могут находиться в подпространствах, они могут или не могут произвольно вращаться, они могут перекрываться или нет (например, k-означает, не допускает перекрытия или подпространства).

0 голосов
/ 17 мая 2015

Алгоритмы EM-дерева и K-дерева в проекте LMW-tree могут кластеризовать проблемы больших размеров, подобные этой. Он реализован на C ++ и поддерживает множество различных представлений.

У нас есть новые алгоритмы, объединяющие двоичные векторы, созданные LSH / случайными проекциями, или что-то еще, что испускает двоичные векторы, которые можно сравнивать по расстоянию Хэмминга для сходства.

0 голосов
/ 19 ноября 2011

Я использовал k-means для данных с измерениями 100, это очень распространено, поэтому я уверен, что есть реализация на любом языке, в худшем случае - это очень легко реализовать самостоятельно.

0 голосов
/ 19 ноября 2011

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

После этого идите k-средних или смесь гауссиан.

0 голосов
/ 19 ноября 2011

ну, я знаю что-то, называемое векторным квантованием, это хороший алгоритм кластеризации вещей со многими измерениями.

...