Função objetivo do PCA: qual é a conexão entre maximizar a variação e minimizar o erro?

32

O algoritmo PCA pode ser formulado em termos da matriz de correlação (suponha que os dados X já tenham sido normalizados e estamos considerando apenas a projeção no primeiro PC). A função objetivo pode ser escrita como:

maxw(Xw)T(Xw)s.t.wTw=1.

Isso é bom e usamos multiplicadores lagrangianos para resolvê-lo, ou seja, reescrevendo-o como:

maxw[(Xw)T(Xw)λwTw],

que é equivalente a

maxw(Xw)T(Xw)wTw,

e, portanto, ( veja aqui no Mathworld ) parece ser igual a

maxwi=1n(distance from point xi to line w)2.

Mas isso significa maximizar a distância entre ponto e linha e, pelo que li aqui , isso está incorreto - deve ser min , não max . Onde está o meu erro?

Ou alguém pode me mostrar o elo entre maximizar a variação no espaço projetado e minimizar a distância entre ponto e linha?

Cam.Davidson.Pilon
fonte
Eu acho que a distância mínima é usada para atender ao critério de ortogonalidade dos componentes. Os pontos são projetados nos PCs que são ortogonais entre si, mas em cada componente sucessivo a variação restante é maximizada.
Michael R. Chernick
Dica: O que acontece quando você considera o menor autovalor primeiro, e não o maior?
whuber
@whuber O menor valor próprio provavelmente tem o PC que é a solução para a função objetivo final. Mas este PC não maximiza a função objetivo original.
68468 Camdavidson.Pilon 12/12/12
2
Não sei ao certo o que você quer dizer com função objetivo "final" e "original", Cam. O PCA não é (conceitualmente) um programa de otimização. Sua saída é um conjunto de direções principais, não apenas uma. É um teorema matemático (interessante) que essas direções podem ser encontradas através da resolução de uma sequência de programas quadráticos restritos, mas isso não é básico para os conceitos ou a prática do PCA. Estou apenas sugerindo que, concentrando-se no menor autovalor, e não no maior, é possível reconciliar as duas idéias de (1) minimizar distâncias e (2) adotar uma visão de otimização do PCA.
whuber
1
Tudo bem - sua resposta foi a versão sem erros do que eu estava tentando fazer.
Cam.Davidson.Pilon

Respostas:

42

Seja uma matriz de dados centralizada com n observações em linhas. Seja Σ = XX / ( n - 1 ) seja sua matriz de covariância. Seja w um vetor unitário especificando um eixo no espaço variável. Queremos que w seja o primeiro eixo principal.XnΣ=XX/(n1)ww

Xw

Var(Xw)=wXXw/(n1)=wΣw.

XXwww

XXww2=tr((XXww)(XXww))=tr((XXww)(XwwX))=tr(XX)2tr(XwwX)+tr(XwwwwX)=consttr(XwwX)=consttr(wXXw)=constconstwΣw.

wΣww .

ameba diz Restabelecer Monica
fonte
Algo que eu notei, não é WTΣW uma função convexa (em relação a W Como Σé PSD? Como é que tentamos maximizar isso?
Royi 24/12/16
@amoeba can you explain how you go from tr() to const in the last step?
alberto
1
@alberto What is inside the trace is a number (1x1 matrix); a trace of a number is this number itself, so the trace can be removed. The constant appears because Σ is equal to XX/n, so there is this 1/n factor.
amoeba says Reinstate Monica
1
@Leullame The calculation will hold verbatim for W if it is a matrix with orthonormal columns. You need WW=I to go from line #3 to line #4. If matrix W has orthonormal columns, then indeed xWW will be a projection of x onto the subspace spanned by the columns of W (here x is a row vector).
amoeba says Reinstate Monica
1
@DanielLópez Well, we are looking for a 1-dimensional subspace minimizing reconstruction error. A 1-dimensional subspace can be defined by a unit-norm vector pointing into its direction, which is what w is taken to be. It has unit norm by construction.
amoeba says Reinstate Monica