Estou trabalhando em algumas técnicas de agrupamento, nas quais, para um determinado agrupamento de vetores da dimensão d, assumo uma distribuição normal multivariada e calculo o vetor médio da dimensão d da amostra e a matriz de covariância da amostra.
Então, quando tentando decidir se um novo, sem ser visto, d-dimensional vetor pertence a este cluster estou verificando sua distância através desta medida:
Que requer me para calcular o inverso da matriz de covariância σ X . Mas, dadas algumas amostras, não posso garantir que a matriz de covariância seja invertível, o que devo fazer no caso de não ser?
obrigado
Respostas:
É por isso que é comum não usar PCA literal, mas executar decomposição de valor singular , que pode ser usada para calcular o pseudo - inverso de uma matriz. Se a matriz for invertível, o pseudo-inverso será o inverso.
No entanto, se você estiver vendo matrizes não invertíveis, é provável que sua distância do cluster não faça sentido se o vetor estiver fora do hiperplano, o cluster representa, porque você não conhece a variação no espaço ortogonal (você pode pensar em essa variação como 0!) SVD pode calcular o pseudoinverso, mas as "variações" ainda não serão determinadas pelos seus dados.
Além disso, dependendo de como você calcula a matriz de covariância, você pode estar tendo problemas numéricos devido ao cancelamento catastrófico. A solução mais simples é sempre centralizar os dados primeiro, para obter média zero.
fonte