Función objetivo de PCA: ¿cuál es la conexión entre maximizar la varianza y minimizar el error?

32

El algoritmo PCA se puede formular en términos de la matriz de correlación (suponga que los datos X ya se han normalizado y solo estamos considerando la proyección en la primera PC). La función objetivo se puede escribir como:

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

Esto está bien, y usamos multiplicadores lagrangianos para resolverlo, es decir, reescribirlo como:

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

que es equivalente a

maxw(Xw)T(Xw)wTw,

y por lo tanto ( ver aquí en Mathworld ) parece ser igual a

maxwyo=1norte(distancia desde el punto Xyo alinear w)2.

Pero esto es para maximizar la distancia entre el punto y la línea, y por lo que he leído aquí , esto es incorrecto: debería ser , no . ¿Dónde está mi error?minmax

O, ¿alguien puede mostrarme el vínculo entre maximizar la varianza en el espacio proyectado y minimizar la distancia entre el punto y la línea?

Cam.Davidson.Pilon
fuente
Creo que la distancia mínima se utiliza para cumplir el criterio de ortogonalidad para los componentes. Los puntos se proyectan en las PC que son ortogonales entre sí, pero en cada componente sucesivo se maximiza la variación restante.
Michael R. Chernick
Sugerencia: ¿Qué sucede cuando considera primero el valor propio más pequeño , en lugar del más grande?
whuber
@whuber El valor propio más pequeño probablemente tiene la PC que es la solución a la función objetivo final. Pero esta PC no maximiza la función objetivo original.
Cam.Davidson.Pilon
2
No estoy seguro de lo que quieres decir con función objetivo "final" y "original", Cam. PCA no es (conceptualmente) un programa de optimización. Su salida es un conjunto de direcciones principales, no solo una. Es un teorema matemático (interesante) que estas direcciones se pueden encontrar resolviendo una secuencia de programas cuadráticos restringidos, pero eso no es básico para los conceptos o la práctica de PCA. Solo sugiero que, al enfocarse en el valor propio más pequeño en lugar del más grande, puede conciliar las dos ideas de (1) minimizar distancias y (2) tomar una vista de optimización de PCA.
whuber
1
Está bien, su respuesta fue la versión sin error de lo que estaba tratando de hacer.
Cam.Davidson.Pilon

Respuestas:

42

Sea una matriz de datos centrada con observaciones en filas. Sea ser su matriz de covarianza. Sea ser un vector unitario que especifica un eje en el espacio variable. Queremos que sea ​​el primer eje principal.XΣ = XX / ( n - 1 )nΣ=XX/(n1)ww

Según el primer enfoque, el primer eje principal maximiza la varianza de la proyección (varianza del primer componente principal). Esta variación viene dada porV a r ( X w ) = wXX w / ( n - 1 ) = w Σ w .Xw

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

Según el segundo enfoque, el primer eje principal minimiza el error de reconstrucción entre y su reconstrucción , es decir, la suma de las distancias al cuadrado entre los puntos originales y sus proyecciones sobre . El cuadrado del error de reconstrucción viene dado por X w ww X - X w w2XXwww

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

Observe el signo menos antes del término principal. Debido a eso, minimizar el error de reconstrucción equivale a maximizar , que es la varianza. Por lo tanto, minimizar el error de reconstrucción es equivalente a maximizar la varianza; ambas formulaciones producen el mismo .wΣww

ameba dice Reinstate Monica
fuente
Algo que noté, ¿no es una función convexa (con respecto a as es PSD? ¿Cómo es que tratamos de maximizarlo?wTΣwwΣ
Royi
@amoeba, ¿puedes explicar cómo pasas de tr () a const en el último paso?
alberto
1
@alberto Lo que está dentro de la traza es un número (matriz 1x1); un rastro de un número es este número en sí mismo, por lo que el rastro se puede eliminar. La constante aparece porque es igual a , por lo que existe este factor . ΣXX/n1/n
ameba dice Reinstate Monica
1
@Leullame El cálculo tendrá textualmente para si es una matriz con columnas ortonormales. Necesita para pasar de la línea 3 a la 4. Si la matriz tiene columnas ortonormales, entonces será una proyección de en el subespacio atravesado por las columnas de (aquí es un vector de fila). WWW=IWxWWxWx
ameba dice Reinstate Monica
1
@ DanielLópez Bueno, estamos buscando un subespacio unidimensional que minimice el error de reconstrucción. Un subespacio unidimensional se puede definir mediante un vector de unidad de norma que apunta en su dirección, que es lo que se considera . Tiene unidad de norma por construcción. w
ameba dice Reinstate Monica