Eigenmaps PCA, ICA e Laplacian

9

Estou muito interessado no método eigenmaps da Lapônia. Atualmente, estou usando-o para reduzir as dimensões dos meus conjuntos de dados médicos.

No entanto, encontrei um problema usando o método

Por exemplo, tenho alguns dados (sinais espectrais), posso usar o PCA (ou ICA) para obter alguns PCs e ICs. O problema é como obter componentes com dimensões semelhantes reduzidas dos dados originais?

De acordo com o método de autovalores do Laplaciano, precisamos resolver o problema generalizado de autovalores, que é

Ly=λDy

Aqui y são os autovetores. Se eu plotar os vetores próprios, por exemplo, os três principais vetores de y (definir a solução de acordo com três valores próprios), os resultados não serão interpretáveis.

No entanto, sempre posso plotar os 3 principais PCs e os 3 principais ICs, que de alguma forma representam os dados originais x.

Suponho que a razão seja porque a matriz L é definida pela matriz de ponderação (matriz adjuvante W) e os dados x foram ajustados ao núcleo de calor para criar W, que está usando uma função exponencial. Minha pergunta é como recuperar os componentes reduzidos de x (não o vetor próprio y da matriz L)?

Muito obrigado e aguardo sua resposta.


Muito obrigado pela sua resposta.

Meu conjunto de dados é restrito e não é fácil demonstrar o problema. Aqui eu criei um problema de brinquedo para mostrar o que eu quis dizer e o que quero perguntar.

Por favor, veja a imagem,

Primeiramente, crio algumas ondas senoidais A, B, C mostrando em curvas vermelhas (primeira coluna da figura). A, B e C têm 1000 amostras, em outras palavras, salvas em 1x1000 vetores.

Em segundo lugar, misturei as fontes A, B, C usando combinações lineares criadas aleatoriamente, por exemplo, , nas quais r1, r2, r3 são valores aleatórios. O sinal misto M está em um espaço dimensional muito alto, por exemplo, , 1517 é um espaço dimensional dimensional escolhido aleatoriamente. Mostro apenas as três primeiras linhas do sinal M em curvas verdes (segunda coluna da figura).M=r1A+r2B+r3CMR1517×1000

Em seguida, eu executo os mapas próprios PCA, ICA e Laplacian para obter os resultados de redução de dimensão. Eu escolhi usar 3 PCs, 3 ICs e 3 LEs para fazer uma comparação justa (as curvas azuis mostradas na 3ª, 4ª e última coluna da figura, respectivamente).

A partir dos resultados de PCA e ICA (3ª, 4ª coluna da figura), podemos ver que podemos interpretar os resultados como uma redução de dimensão, ou seja, para os resultados da ICA, podemos recuperar o sinal misto por (Não tenho certeza se também podemos obter com os resultados do PCA, mas o resultado parece bastante adequado para mim).M=b1IC1+b2IC2+b3IC3M=a1PC1+a2PC2+a3PC3

No entanto, por favor, olhe os resultados do LE, mal consigo interpretar os resultados (última coluna da figura). Parece algo 'errado' com os componentes reduzidos. Além disso, quero mencionar que, eventualmente, o gráfico da última coluna é o vetor próprio na fórmulayLy=λDy

Vocês têm mais idéias?

A Figura 1, usando os 12 vizinhos mais próximos e o sigma no núcleo de aquecimento, é 0,5: Colunas da esquerda para a direita: sinal original, sinal misto, PCs, ICs, LEs

A Figura 2 usando 1000 vizinhos mais próximos e o sigma no núcleo de aquecimento é 0,5: Colunas da esquerda para a direita: sinal original, sinal misto, PCs, ICs, LEs

Os códigos do Matlab com o pacote necessário são enviados para http://www.mediafire.com/?0cqr10fe63jn1d3

Muito obrigado.

Samo Jerom
fonte
2
Bem vindo ao site! Editei sua postagem por gramática e ortografia. Também coloquei a fórmula no formato LaTeX.
Peter Flom - Restabelece Monica
11
O que você quer dizer com componentes reduzidos de x? Você quer dizer uma incorporação de baixa dimensão de x?
carro fúnebre
Isso parece interessante. Você poderia fornecer uma descrição mais detalhada da aparência de seus dados?
Placidia 10/10
É possível ao moderador colocar minha postagem na 'postagem em destaque'? Eu realmente pedi para obter a resposta. Muito obrigado.
Samo Jerom

Respostas:

3

A resposta à sua pergunta é dada pelo mapeamento na parte inferior da página 6 do Laplacian Eigenmaps originais papel :

xi(f1(i),,fm(i))

Assim, por exemplo, a incorporação de um ponto nos 2 "componentes" principais é dada por onde e são os autovetores correspondentes aos dois menores autovalores diferentes de zero do problema generalizado de autovalor . ( f 1 ( 5 ) , f 2 ( 5 ) ) f 1 f 2 L f = λ D fx5(f1(5),f2(5))f1f2Lf=λDf

Observe que, diferentemente do PCA, não é fácil obter uma incorporação fora da amostra. Em outras palavras, você pode obter a incorporação de um ponto que já foi considerado ao calcular , mas não (facilmente) se for um novo ponto. Se você estiver interessado em fazer o último, consulte este documento .L

Shantanu
fonte
Estou um pouco confuso sobre o que você está considerando como suas variáveis. Pelo que entendi, sua matriz consiste em 1517 amostras de um espaço 1000-dimensional. Quando você faz PCA (ou ICA) nessa matriz, é capaz de recuperar os modos de variação subjacentes muito bem: por exemplo, na coluna 3 de suas figuras, a linha 1,2,3 corresponde às bases C, A, B respectivamente. Isso faz sentido. No entanto, no seu código, quando você executa o LEM, chama a função em ( ), que não é consistente com o acima. M TMMTmixedSignal'
21912 Shantanu
Então, primeiro, na matriz , quais são suas variáveis ​​e quais são suas observações? Segundo, a partir de sua análise, parece que você não está apenas procurando a incorporação de usando o LEM, mas também o equivalente dos vetores próprios, como no PCA, certo? Você não pode fazer isso LEM, pelo menos não facilmente. Leia este documento para entender o porquê. MMM
Shantanu
Se tudo o que você procura é a incorporação, isso é facilmente fornecido pelo mapeamento . Procure minha resposta para obter detalhes. No seu código, altere a linha 47 e use em vez de sua transposição; o resultado fornecerá a incorporação tridimensional dos seus 1517 pontos. xi(f1(i),,fm(i))mixedSignalmappedX
21912 Shantanu
PS: Acima, eu quis dizer "Você não pode fazer isso usando o LEM, pelo menos não facilmente".
Shantanu
1

Ao contrário do PCA-Laplacian, os eigenmaps usam os vetores de eigen generalizados correspondentes aos menores valores de eigen. Ele ignora o vetor eigen com o menor valor de eigen (pode ser zero) e usa os vetores de eigen correspondentes aos próximos valores de eigen menores. O PCA é uma variação máxima que preserva a incorporação usando a matriz kernel / grama. O Eigenmaps Laplaciano é colocado mais como um problema de minimização em relação ao gráfico combinatório laplaciano (consulte artigos de Trosset).

carro fúnebre
fonte
Todos os interessados ​​em dar uma olhada na minha pergunta novamente. Eu coloquei alguns exemplos. Muito obrigado.
Samo Jerom