Pergunta

Eu estou tentando agrupar algumas imagens dependendo dos ângulos entre as partes do corpo.

As características extraídas de cada imagem são:

angle1 : torso - torso
angle2 : torso - upper left arm
..
angle10: torso - lower right foot

Portanto, os dados de entrada é uma matriz de tamanho 1057x10, onde 1057 representa o número de imagens, e 10 representa o ângulo de partes do corpo com torso. Da mesma forma um testSet é 821x10 matriz.

Eu quero que todas as linhas de dados de entrada a ser agrupados com 88 clusters. Então eu vou usar esses grupos para encontrar quais os clusters não TestData cair?

Em um trabalho anterior, eu usei K-means clustering que é muito simples . Pedimos apenas K-Means para agrupar os dados em 88 clusters. E implementar um outro método que calcula a distância entre cada linha de dados de teste e os centros de cada cluster, em seguida, escolher os menores valores. Este é o conjunto de linha de dados de entrada correspondente.

Eu tenho duas perguntas:

  1. É possível fazer isso usando SOM no MATLAB? de AFAIK SOM são para agrupamento visual. Mas eu preciso saber a classe real de cada grupo para que eu possa mais tarde rotular meus dados de teste através do cálculo que agrupam a que pertence.

  2. Você tem uma solução melhor?

Foi útil?

Solução

Self-Organizing Map (SOM) é um método de agrupamento considerado como uma variação sem supervisão do Redes Neurais artificiais (RNA) . Ele usa aprendizagem competitiva técnicas para treinar a rede (nós competem entre si para mostrar a ativação mais forte para uma determinada data)

www.lohninger.com/helpcsuite/kohonen_network _-_ background_information.htm

Você pode pensar SOM como se ele consiste em uma grade de nós interconectados (forma quadrada, hexagonal, ..), onde cada nó é um vetor N-dim de pesos (mesmo tamanho dimensão, como os pontos de dados que queremos cluster).

A idéia é simples; dado um vetor como entrada para SOM, encontramos o nó armário para que, em seguida, atualizar seus pesos e os pesos dos nodos vizinhos para que eles se aproximam a do vetor de entrada (daí o nome auto-organização ). Este processo é repetido para todos os dados de entrada.

plotsompos

Os aglomerados formados são implicitamente definida pela forma como os nós organizar-se e formar um grupo de nodos com pesos semelhantes. Eles podem ser facilmente visto visualmente.

plotsomnd

SOM estão em uma maneira similar aos algoritmo K-means mas diferentes em que não impomos um número fixo de clusters, em vez disso, especificar o número e forma de nós na grade que nós queremos que ele se adaptar aos nossos dados.

Basicamente, quando você tem um SOM treinado, e que pretende classificar um novo vetor de entrada de teste, basta atribuí-lo ao mais próximo (distância como uma medida de similaridade) nó no grid ( Melhor Matching Unit BMU), e dar como previsão da classe [maioria] dos vectores que pertencem a esse nó BMU.

plotsomhits

Para MATLAB, você pode encontrar uma série de caixas de ferramentas que implementam SOM:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top