Программное обеспечение для визуализации для кластеризации

14

Я хочу кластеризовать ~ 22000 баллов. Многие алгоритмы кластеризации работают лучше при более высоком качестве начальных догадок. Какие существуют инструменты, которые могут дать мне хорошее представление о приблизительной форме данных?

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

Свободное программное обеспечение предпочтительнее, но у меня уже есть SAS и MATLAB.

анонимный
источник

Ответы:

11

GGobi (http://www.ggobi.org/) вместе с пакетом r rggobi идеально подходит для этой задачи.

Смотрите соответствующую презентацию для примеров: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf

Шейн
источник
Спасибо за предложение, @Shane. ggobi выглядит многообещающе, я устанавливаю его прямо сейчас и попробую :)
1
Прекрасно работает на других платформах, но gtk плохо работает с OSX.
3
GTK в порядке на OSX.
Хэдли
5

Изучение результатов кластеризации в больших измерениях может быть сделано в R с использованием пакетов clusterfly и gcExplorer . Ищите больше здесь .

Джордж Донтас
источник
Спасибо, но есть ли польза от использования clusterfly вместо прямого вызова ggobi? На сайте упоминаются только методы кластеризации, которые интересны, но пока не являются моей главной целью. У gcexplorer есть менее информативный веб-сайт, но, похоже, он предназначен для визуализации данных после того, как они уже разбиты на кластеры. Я дам им попытку, как только доберусь до этой точки, но не то, что мне сейчас нужно.
4

(Месяцы спустя), хороший способ изобразить k-кластеры и увидеть влияние различных k - это построить минимальное остовное дерево и посмотреть на самые длинные ребра. Например,

альтернативный текст

Здесь 10 кластеров с 9 самыми длинными ребрами 855 899 942 954 1003 1005 1069 1134 1267.
Для 9 кластеров сверните ребро голубого 855; для 8 - фиолетовый 899; и так далее.

Алгоритм k-кластеризации в одно звено ... это точно алгоритм Крускала ... эквивалентный поиску MST и удалению k-1 самых дорогих ребер.

- Уэйн, Жадные Алгоритмы .

22000 точек, 242M попарных расстояний, занимают ~ 1 гигабайт (float32): может подойти.

Чтобы просмотреть многомерное дерево или график в 2d, см. Многомерное масштабирование (также из Kruskal) и огромную литературу по уменьшению размеров. Однако при dim> 20, скажем, большинство расстояний будет близко к медиане, поэтому я считаю, что уменьшение размеров не может работать там.

Денис
источник
2

У меня был хороший опыт работы с KNIME во время одного из моих проектов. Это отличное решение для быстрой разведки и графического анализа. Кроме того, он обеспечивает бесшовную интеграцию модулей R и Weka.

Радек
источник
Выглядит как полезная программа, но их веб-страница не очень хорошо убеждает меня, что она решит именно эту проблему. Похоже, что он может быть слишком широким, слишком много функций, которые меня не волнуют, затрудняя выполнение простых вещей. Я еще раз посмотрю, если другие варианты не сработают.
1

Взгляните на Cluster 3.0 . Я не уверен, что он будет делать все, что вы хотите, но он довольно хорошо задокументирован и позволяет выбирать из нескольких метрик расстояния. Часть визуализации осуществляется через отдельную программу под названием Java TreeView ( скриншот ).

АРС
источник
Спасибо за предложение, но возможность выбрать собственную меру расстояния имеет решающее значение, поэтому мне это не сработает. Кто-то может найти это полезным, хотя.
1

GGobi выглядит интересно для этого. Другой подход может заключаться в том, чтобы рассматривать ваши матрицы подобия / обратного расстояния как матрицы смежности сети и включать их в процедуру анализа сети (например, либо igraph в R, либо, возможно, Pajek). При таком подходе я бы экспериментировал с разрезанием отрезания расстояний между узлами в двойную связь в различных точках резания.

Шелби
источник
Я думал об этом, но, похоже, нет разумной точки отсечения, и эксперты в области также не могут ее оправдать.
Я бы подумал, что это может быть довольно произвольно для вашей заявленной цели - честно, вам даже может не понадобиться нарезать двоичные данные, просто перекодировать метку связующего значения по шкале от 1 до некоторого управляемого числа, а затем постепенно скрывать / показывать связи в различные уровни (по желанию также скрытие / устранение любых кулонов и сирот по пути). Непосредственно не отвечая на ваш запрос в письменном виде, но почему бы не использовать более типичный подход и использовать гибридный метод кластеризации, который не использует начальные центроиды для идентификации предварительных кластеров, а затем направить центроиды из этого результата в ваш новый анализ?
Шелби
Я предполагаю, что вы хотите попробовать разные варианты отсечки, пока не увидите хорошие результаты? Я хотел бы избежать этого по стандартным причинам множественного сравнения. Re: ваше второе предложение, я думаю, я просто доверяю себе лучше, чем эти алгоритмы. Я использую компьютер для обработки больших объемов данных, слишком утомительных, чтобы делать их вручную, чтобы не заменить мои мысли.
1
Вы используете язык проверки гипотез, но в то же время говорите об очень исследовательском подходе «знай, когда видишь» @ в то же время, поэтому неясно, какова ваша цель на самом деле для этой части вашего анализа. Если у вас есть гипотезы, которые вы проверяете позже (например, предсказываете членство в кластере или используете членство в кластере в качестве предиктора), тогда вы можете не делать то, что вызовет там предвзятость. Но проблемы «множественного сравнения» на самом деле не входят в исследуемую проблему, которую вы описываете. Отключение, а именно, чтобы помочь вам увидеть, что там есть - но ваше доверие все еще может быть неуместным.
Шелби
1

Weka - это программа с открытым исходным кодом для интеллектуального анализа данных (wirtten и расширяемая в Java), Orange - это программа с открытым исходным кодом и библиотека для интеллектуального анализа данных и машинного обучения (написана на Python). Они оба обеспечивают удобное и эффективное визуальное исследование многомерных данных.

Джонатан Джеймс
источник
На странице возможностей Orange написано «в разработке», и на них нет скриншотов, подобных тому, что я делаю. У weka нет списка возможностей вообще. Они могут делать то, что я хочу, но если они не продвигают эту функцию, как я могу сказать. Меня больше убеждают другие варианты.
0

Бесплатное числовое программное обеспечение DataMelt включает библиотеку Java под названием JMinHep. Пожалуйста, посмотрите руководство в разделе «Кластеризация данных». Он предоставляет графический интерфейс для визуализации многомерных точек данных в XY и запускает ряд алгоритмов кластеризации данных.

tania62
источник