Software de visualização para armazenamento em cluster

14

Eu quero agrupar ~ 22000 pontos. Muitos algoritmos de agrupamento funcionam melhor com suposições iniciais de maior qualidade. Quais ferramentas existem para me dar uma boa idéia da forma aproximada dos dados?

Eu quero poder escolher minha própria métrica de distância, para que um programa no qual eu possa alimentar uma lista de distâncias em pares seja ótimo. Gostaria de poder fazer algo como destacar uma região ou cluster no visor e obter uma lista de quais pontos de dados estão nessa área.

O software livre é preferido, mas eu já tenho SAS e MATLAB.

anônimo
fonte

Respostas:

11

O GGobi (http://www.ggobi.org/), juntamente com o pacote R rggobi, é perfeitamente adequado para esta tarefa.

Veja a apresentação relacionada para exemplos: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf

Shane
fonte
Obrigado pela sugestão, @ Shane. olhares ggobi prometendo, estou a instalar-lo agora e vai dar-lhe uma tentativa :)
1
Funciona bem em outras plataformas, mas o gtk não funciona bem com o OSX.
3
O gtk funciona bem no OSX.
Hadley
5

A exploração dos resultados do clustering em grandes dimensões pode ser feita no R usando os pacotes clusterfly e gcExplorer . Procure mais aqui .

George Dontas
fonte
Obrigado, mas há algum benefício em usar o clusterfly em vez de chamar o ggobi diretamente? O site menciona apenas métodos de cluster, que são interessantes, mas ainda não é meu objetivo principal. O gcexplorer possui um site menos informativo, mas parece que é para visualizar dados depois que eles já foram divididos em clusters. Vou experimentá-los quando chegar a esse ponto, mas não o que eu preciso agora.
4

(Meses depois), uma boa maneira de visualizar os clusters k e ver o efeito de vários k é construir uma Árvore de Abrangência Mínima e observar as arestas mais longas. Por exemplo,

texto alternativo

Aqui existem 10 clusters, com 9 arestas mais longas 855 899 942 954 1003 1005 1069 1134 1267.
Para 9 clusters, reduza a aresta ciana 855; para 8, o roxo 899; e assim por diante.

O algoritmo k-clustering de link único ... é precisamente o algoritmo de Kruskal ... equivalente a encontrar um MST e excluir as arestas mais caras do k-1.

- Wayne, algoritmos gananciosos .

22000 pontos, distâncias 242M em pares, leva ~ 1 gigabyte (float32): pode caber.

Para visualizar uma árvore ou gráfico de alta dimensão em 2d, consulte Escala multidimensional (também da Kruskal) e a enorme literatura sobre redução de dimensão. No entanto, em dim> 20, a maioria das distâncias estará próxima da mediana, por isso acredito que a redução de dimensão não pode funcionar lá.

denis
fonte
2

Eu tive uma boa experiência com o KNIME durante um dos meus projetos. É uma excelente solução para mineração e gráficos exploratórios rápidos. Além disso, fornece integração perfeita dos módulos R e Weka.

radek
fonte
Parece um programa útil, mas a página da web não me convence de que resolverá exatamente esse problema. Parece que pode ser muito amplo, com muitos recursos com os quais não me importo, dificultando as coisas simples. Vou dar uma outra olhada se as outras opções não derem certo.
2

Veja também o ELKI , um software de mineração de dados de código aberto. O Wikimedia commons possui uma galeria com imagens produzidas com ELKI , muitas das quais relacionadas à análise de cluster.

Tem QUIT - Anony-Mousse
fonte
1

Dê uma olhada no Cluster 3.0 . Não tenho certeza se fará tudo o que você deseja, mas está muito bem documentado e permite escolher entre algumas métricas de distância. A parte de visualização é feita através de um programa separado chamado Java TreeView ( captura de tela ).

ars
fonte
Obrigado pela sugestão, mas a capacidade de escolher minha própria medida de distância é crítica, portanto isso não funcionará para mim. Alguém mais pode achar útil, no entanto.
1

GGobi parece interessante para isso. Outra abordagem poderia ser tratar suas matrizes de similaridade / distância inversa como matrizes de adjacência da rede e inseri-las em uma rotina de análise de rede (por exemplo, igraph em R ou talvez Pajek). Com essa abordagem, eu tentaria cortar o corte das distâncias dos nós em um empate binário em vários pontos de corte.

Shelby
fonte
Pensei nisso, mas não parece haver um ponto de corte razoável, e os especialistas em domínio também não podem justificar um.
Eu acho que isso pode ser bastante arbitrário para o seu objetivo declarado - honestamente, você pode nem precisar cortar o binário, apenas recodificar um rótulo de valor de empate em uma escala de 1 a algum número gerenciável e depois ocultar / mostrar progressivamente os empates em vários níveis (opcionalmente também ocultando / eliminando quaisquer pendentes e órfãos ao longo do caminho). Não está respondendo diretamente à sua solicitação conforme escrito, mas por que não adotar uma abordagem mais típica e usar um método híbrido de clustering que não use centróides iniciais para identificar agrupamentos preliminares e, em seguida, alimente os centróides desse resultado em sua nova análise?
Shelby
Eu suponho que você pretende tentar muitos pontos de corte diferentes até que eu veja alguns bons resultados? Desejo evitar isso por motivos de múltiplas comparações padrão. re: sua segunda sugestão, acho que confio em mim mesmo melhor do que esses algoritmos. Eu uso o computador para processar grandes quantidades de dados tediosas demais para serem feitas manualmente, não para substituir meu pensamento.
1
Você está usando uma linguagem de teste de hipóteses, mas ainda falando de uma abordagem muito exploratória, saiba-o-quando-vê-ao-tempo, ao mesmo tempo - para que não fique claro qual é seu objetivo realmente nesta parte de sua análise. Se você tiver hipóteses que estiver testando mais tarde (por exemplo, prever a associação ao cluster ou usar a associação à clust como preditor), poderá optar por não fazer as coisas que tentarão influenciar o viés. Porém, os problemas de "comparação múltipla" não figuram realmente no problema exploratório que você está descrevendo. Os pontos de corte viz são apenas para ajudá-lo a ver o que há lá - mas sua confiança ainda pode ser extraviada.
Shelby
1

Weka é um programa de código aberto para mineração de dados (wirtten e extensível em Java), Orange é um programa de código aberto e biblioteca para mineração de dados e aprendizado de máquina (escrito em Python). Ambos permitem uma exploração visual conveniente e eficiente de dados multidimensionais

Jonathan James
fonte
A página de recursos da Orange diz 'em construção' e eles não listam capturas de tela como o que estou fazendo. O weka não possui uma lista de recursos. Eles podem fazer o que eu quero, mas se não promoverem o recurso, como posso saber. Estou mais convencido pelas outras opções.
0

O software numérico gratuito do DataMelt inclui a biblioteca Java chamada JMinHep. Por favor, consulte o manual na seção "Cluster de dados". Ele fornece uma GUI para visualizar pontos de dados multidimensionais em XY e executar vários algoritmos de agrupamento de dados.

tania62
fonte