Visualização de dados multidimensionais (LSI) em 2D

11

Estou usando a indexação semântica latente para encontrar semelhanças entre documentos ( obrigado, JMS! )

Após a redução da dimensão, tentei o agrupamento k-means para agrupar os documentos em clusters, o que funciona muito bem. Mas eu gostaria de ir um pouco mais longe e visualizar os documentos como um conjunto de nós, em que a distância entre dois nós é inversamente proporcional à sua semelhança (nós altamente semelhantes são próximos).

Parece-me que não posso reduzir com precisão uma matriz de similaridade a um gráfico bidimensional, pois meus dados são> 2 dimensões. Então, minha primeira pergunta: existe uma maneira padrão de fazer isso?

Eu poderia apenas reduzir meus dados para duas dimensões e depois plotá-los como os eixos X e Y, e isso seria suficiente para um grupo de ~ 100-200 documentos? Se essa é a solução, é melhor reduzir meus dados para duas dimensões desde o início ou existe alguma maneira de escolher as duas "melhores" dimensões dos meus dados multidimensionais?

Estou usando Python e a biblioteca gensim, se isso faz alguma diferença.

Jeff
fonte
Por que você precisa reduzir a dimensionalidade? Para construir o gráfico desejado, você só precisa de margens em que o comprimento de uma margem seja proporcional à distância entre os documentos. Você já possui isso, a partir da métrica usada para o cluster do k-means.
Aman
@Man que não funciona para exibir semelhança entre> 2 documentos em um plano 2D (gráfico). Certamente, eu posso plotar os pontos A e B com uma separação baseada na distância k-mean. mas quando preciso plotar o ponto C, com base nas distâncias de A e B, normalmente não há ponto no espaço 2D que satisfaça todos os relacionamentos em pares.
1013 Jeff Jeff

Respostas:

7

S=XXSM=VΛV=XXX=VΛ1/2

ΛX

Há muito código disponível para o MDS (e eu ficaria surpreso se o scipy não tiver uma versão dele). De qualquer forma, desde que você tenha acesso a alguma rotina SVD em python, você está definido.

Suresh Venkatasubramanian
fonte
1
Eu acho que a LDA seria melhor para isso. O PCA - ao passar pelo SVD - não preservaria nenhuma informação discriminatória do cluster (classe), que é o que o OP está buscando.
Zhubarb
0

Existe um software chamado ggobi que pode ajudá-lo. Permite explorar pseudoespaços multidimensionais. É principalmente para exploração de dados, mas sua interface é extremamente amigável e 'funciona'!

Você só precisa de um formato CSV (no RI, geralmente use write.csv com os parâmetros padrão) ou um arquivo XML (esse formato permite mais controle; eu costumo salvar minha tabela em CSV, depois exportá-la para XML com ggobi e editá-la manualmente por exemplo, para alterar a ordem de alguns fatores).

pedrosaurio
fonte