Oprogramowanie do wizualizacji dla grupowania

14

Chcę zebrać ~ 22000 punktów. Wiele algorytmów klastrowania działa lepiej przy wstępnych domysłach o wyższej jakości. Jakie istnieją narzędzia, które mogą dać mi dobry pogląd na przybliżony kształt danych?

Chcę mieć możliwość wyboru własnej metryki odległości, więc program, w którym mogę nakarmić listę par odległości, byłby w porządku. Chciałbym móc zrobić coś takiego, jak podświetlić region lub klaster na wyświetlaczu i uzyskać listę punktów danych znajdujących się w tym obszarze.

Wolne oprogramowanie preferowane, ale mam już SAS i MATLAB.

anonimowy
źródło

Odpowiedzi:

11

GGobi (http://www.ggobi.org/) wraz z pakietem R rggobi doskonale nadaje się do tego zadania.

Zobacz pokrewną prezentację przykładów: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf

Shane
źródło
Dzięki za sugestię, @Shane. ggobi wygląda obiecująco, instaluję go teraz i spróbuję :)
1
Działa dobrze na innych platformach, ale gtk nie działa dobrze z OSX.
3
gtk działa poprawnie na OSX.
hadley 21.01.11
5

Badanie wyników grupowania w dużych wymiarach można wykonać w R, używając pakietów klastra i gcExplorer . Poszukaj więcej tutaj .

George Dontas
źródło
Dzięki, ale czy jest jakaś korzyść z używania klastra zamiast bezpośredniego dzwonienia na ggobi? Witryna wspomina tylko o metodach grupowania, które są interesujące, ale nie jest jeszcze moim głównym celem. gcexplorer ma mniej informacyjną stronę internetową, ale wygląda na to, że służy do wizualizacji danych po podzieleniu ich na klastry. Spróbuję, jak tylko dojdę do tego punktu, ale nie tego, czego teraz potrzebuję.
4

(Kilka miesięcy później) dobrym sposobem na zobrazowanie klastrów k i zobaczenie efektu różnych k jest zbudowanie drzewa o minimalnej rozpiętości i spojrzenie na najdłuższe krawędzie. Na przykład,

alternatywny tekst

Tutaj jest 10 klastrów z 9 najdłuższymi krawędziami 855 899 942 954 1003 1005 1069 1134 1267.
W przypadku 9 klastrów zwiń krawędź cyjan 855; dla 8 fioletowe 899; i tak dalej.

Algorytm k-klastrowania pojedynczego łącza ... jest dokładnie algorytmem Kruskala ... równoważnym znalezieniu MST i usunięciu najdroższych krawędzi k-1.

- Wayne, Greedy Algorytmy .

22000 punktów, odległości parami 242M, weź ~ 1 gigabajt (float32): może się zmieścić.

Aby wyświetlić wysokowymiarowe drzewo lub wykres w 2D, zobacz Skalowanie wielowymiarowe (także z Kruskala) i ogromną literaturę na temat zmniejszania wymiarów. Jednak w dim> 20 powiedziano, że większość odległości będzie w pobliżu mediany, więc uważam, że redukcja wymiarów nie może tam działać.

denis
źródło
2

Miałem dobre doświadczenia z KNIME podczas jednego z moich projektów. To doskonałe rozwiązanie do szybkiego eksploracji eksploracyjnej i tworzenia grafów. Ponadto zapewnia płynną integrację modułów R i Weka.

radek
źródło
Wygląda na przydatny program, ale ich strona internetowa nie przekonuje mnie, że rozwiąże ten właśnie problem. Wygląda na to, że może być zbyt szeroki, zbyt wiele funkcji, na których mi nie zależy, co utrudnia wykonywanie prostych czynności. Spojrzę na to jeszcze raz, jeśli inne opcje się nie sprawdzą.
1

Spójrz na Cluster 3.0 . Nie jestem pewien, czy zrobi wszystko, co chcesz, ale jest dość dobrze udokumentowany i pozwala wybierać spośród kilku wskaźników odległości. Fragment wizualizacji odbywa się za pośrednictwem osobnego programu o nazwie Java TreeView ( zrzut ekranu ).

ars
źródło
Dzięki za sugestię, ale umiejętność wyboru własnej miary odległości jest bardzo ważna, więc to mi nie pomoże. Ktoś inny może jednak uznać to za przydatne.
1

GGobi wygląda na to interesujące. Innym podejściem może być traktowanie macierzy podobieństwa / odwrotnych macierzy jako macierzy przylegania do sieci i wprowadzanie ich do procedury analizy sieci (np. Igraph w R lub być może Pajek). Przy takim podejściu eksperymentowałbym z cięciem odległości węzłów do dwójkowego wiązania w różnych punktach cięcia.

Shelby
źródło
Myślałem o tym, ale wydaje się, że nie ma rozsądnego punktu odcięcia, a eksperci w dziedzinie również nie mogą go uzasadnić.
Sądzę, że może to być dość arbitralne dla twojego określonego celu - szczerze mówiąc, być może nawet nie będziesz musiał pokroić na binarne, po prostu przekoduj etykietę wartości remisu w skali od 1 do pewnej możliwej do zarządzania liczby, a następnie stopniowo ukryj / pokaż więzi na różne poziomy (opcjonalnie również ukrywając / eliminując wszelkie wisiorki i sieroty po drodze). Nie odpowiadając bezpośrednio na twoje zapytanie, jak napisano, ale dlaczego nie zastosować bardziej typowego podejścia i zastosować hybrydową metodę grupowania, która nie wykorzystuje początkowych centroidów do identyfikacji wstępnych klastrów, a następnie zasilić centroidy z tego wyniku do nowej analizy?
Shelby,
Zgaduję, że zamierzasz spróbować wielu różnych wartości granicznych, dopóki nie zobaczę fajnych rezultatów? Chciałbym tego uniknąć ze względu na standardowe wielokrotne porównania. re: twoja druga sugestia Chyba po prostu ufam sobie lepiej niż te algorytmy. Używam komputera do przetwarzania dużych ilości danych, które są zbyt żmudne, aby wykonywać je ręcznie, a nie zastępować moje myślenie.
1
Używasz języka do testowania hipotez, ale jednocześnie mówisz o bardzo eksploracyjnym, znanym podejściu @ jednocześnie - więc nie jest jasne, jaki jest twój cel w tej części analizy. Jeśli masz hipotezy, które testujesz później (np. Przewidywanie członkostwa w klastrze lub użycie członkostwa w klastrze jako predyktora), możesz nie robić rzeczy, które będą kusić uprzedzenia. Ale problemy z „wielokrotnym porównywaniem” tak naprawdę nie stanowią problemu badawczego, który opisujesz. Odcięcia są po to, aby pomóc ci zobaczyć, co tam jest - ale twoje zaufanie może być nadal niewłaściwe.
Shelby,
1

Weka to program typu open source do eksploracji danych (wirtten i rozszerzalny w Javie), Orange to program i biblioteka typu open source do eksploracji danych i uczenia maszynowego (napisane w języku Python). Oba umożliwiają wygodne i wydajne wizualne badanie danych wielowymiarowych

Jonathan James
źródło
Strona funkcji Orange mówi „w budowie” i nie wyświetla zrzutów ekranu takich jak to, co robię. weka nie ma żadnej listy funkcji. Mogą być w stanie zrobić to, co chcę, ale jeśli nie promują tej funkcji, jak mogę to powiedzieć. Bardziej przekonują mnie inne możliwości.
0

Bezpłatne oprogramowanie numeryczne DataMelt zawiera bibliotekę Java o nazwie JMinHep. Zapoznaj się z instrukcją w sekcji „Grupowanie danych”. Zapewnia GUI do wizualizacji wielowymiarowych punktów danych w XY i uruchamia szereg algorytmów klastrowania danych.

tania62
źródło