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

maxw∑i=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?


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 Σ = X ⊤ X / ( 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Σ=X⊤X/(n−1)ww

Xw

Var(Xw)=w⊤X⊤Xw/(n−1)=w⊤Σw.

XXww⊤w

‖X−Xww⊤‖2=tr((X−Xww⊤)(X−Xww⊤)⊤)=tr((X−Xww⊤)(X⊤−ww⊤X⊤))=tr(XX⊤)−2tr(Xww⊤X⊤)+tr(Xww⊤ww⊤X⊤)=const−tr(Xww⊤X⊤)=const−tr(w⊤X⊤Xw)=const−const⋅w⊤Σw.

w⊤Σww .


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 X⊤X/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 W⊤W=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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.