¿La reducción de dimensiones siempre pierde información?


10

Como dice el título, ¿la reducción de dimensiones siempre pierde algo de información? Considere, por ejemplo, PCA. Si los datos que tengo son muy escasos, supongo que se podría encontrar una "mejor codificación" (¿está relacionado de alguna manera con el rango de los datos?), Y no se perdería nada.


77
No, por supuesto que no: algunos de los valores singulares en PCA pueden ser ceros verdaderos, por ejemplo. Esto está menos relacionado con la "escasez" de los datos que con si "completan" las dimensiones utilizadas para registrarlos.
whuber

1
OK veo. ¿Podría escribir su comentario como una respuesta breve (tal vez incluso con un pequeño ejemplo, si tiene tiempo)?
preguntándose el

1
Considere el caso donde tiene datos bidimensionales, donde el valor de y para cada punto es '0'. Su primer componente principal será el eje X, y no perderá nada al proyectar sus datos en esta única dimensión porque ya es efectivamente unidimensional.
David Marx

Respuestas:


9

La reducción de la dimensionalidad no siempre pierde información. En algunos casos, es posible volver a representar los datos en espacios de dimensiones inferiores sin descartar ninguna información.

Suponga que tiene algunos datos donde cada valor medido está asociado con dos covariables ordenadas. Por ejemplo, suponga que midió la calidad de la señal (indicada por el color blanco = bueno, negro = malo) en una cuadrícula densa de posiciones x e y en relación con algún emisor. En ese caso, sus datos podrían parecerse a la gráfica de la izquierda [* 1]:Qxy

demo de promedio radial

Es, al menos superficialmente, un dato bidimensional: . Sin embargo, podríamos saber a priori (basado en la física subyacente) o suponer que depende solo de la distancia desde el origen: r = Q(x,y) . (Algunos análisis exploratorios también pueden llevarlo a esta conclusión si incluso el fenómeno subyacente no se comprende bien). Entonces podríamos reescribir nuestros datos comoQ(r) enlugar deQ(x,y), lo que reduciría efectivamente la dimensionalidad a una sola dimensión. Obviamente, esto solo es sin pérdidas si los datos son radialmente simétricos, pero esta es una suposición razonable para muchos fenómenos físicos.x2+y2Q(r)Q(x,y)

Esta transformación no es lineal (¡hay una raíz cuadrada y dos cuadrados!), Por lo que es algo diferente del tipo de reducción de dimensionalidad realizada por PCA, pero creo que es un buen ejemplo de cómo a veces puede eliminar una dimensión sin perder ninguna información.Q(x,y)Q(r)

Para otro ejemplo, suponga que realiza una descomposición de valores singulares en algunos datos (SVD es un primo cercano al análisis de componentes principales y, a menudo, las entrañas subyacentes). SVD toma su matriz de datos y factores en tres matrices de tal manera que M = U S V T . Las columnas de U y V son los vectores singulares izquierdo y derecho, respectivamente, que forman un conjunto de bases ortonormales para M . Los elementos diagonales de S (es decir, S i , i ) son valores singulares, que son efectivamente pesos en el conjunto de base i formado por las columnas correspondientes de U yMM=USVTMSSi,i)iU (el resto de S es ceros). Por sí solo, esto no le brinda ninguna reducción de dimensionalidad (de hecho, ahora hay 3matrices N x N en lugar de lamatriz N x N única con laque comenzó). Sin embargo, a veces algunos elementos diagonales de S son cero. Esto significa que las bases correspondientes en U y V no son necesarias para reconstruir M , por lo que pueden eliminarse. Por ejemplo, suponga que Q ( x , y )VSNxNNxNSUVMQ(x,y)la matriz anterior contiene 10,000 elementos (es decir, es 100x100). Cuando realizamos un SVD en él, encontramos que solo un par de vectores singulares tiene un valor distinto de cero [* 2], por lo que podemos representar de nuevo la matriz original como el producto de dos vectores de 100 elementos (200 coeficientes, pero en realidad puedes hacerlo un poco mejor [* 3]).

Para algunas aplicaciones, sabemos (o al menos suponemos) que la información útil es capturada por componentes principales con valores singulares altos (SVD) o cargas (PCA). En estos casos, podríamos descartar los vectores / bases / componentes principales singulares con cargas más pequeñas, incluso si no son cero, en la teoría de que estos contienen ruido molesto en lugar de una señal útil. Ocasionalmente he visto personas rechazar componentes específicos en función de su forma (por ejemplo, se asemeja a una fuente conocida de ruido aditivo) independientemente de la carga. No estoy seguro si consideraría esto una pérdida de información o no.

Hay algunos resultados claros sobre la optimización teórica de la información de PCA. Si su señal es gaussiana y está corrompida con ruido gaussiano aditivo, entonces PCA puede maximizar la información mutua entre la señal y su versión de dimensionalidad reducida (suponiendo que el ruido tenga una estructura de covarianza similar a la identidad).


Notas al pie:

  1. Este es un modelo cursi y totalmente no físico. ¡Lo siento!
  2. Debido a la imprecisión de coma flotante, algunos de estos valores no serán del todo cero.
  3. US

I(r)

r=(x2+y2)

1
Matt, mi pregunta realmente equivalía a esto: nos muestras una imagen sin ninguna descripción o referencia y te refieres a ella como "datos": me gustaría saber en qué sentido piensas que son datos. Su comentario confunde este problema, porque una representación de "mapa de calor" generalmente no son datos, sino algo creado a partir de datos. Si se tratara de datos de puntos 2D irregulares, por ejemplo, y usted ajusta una densidad radialmente simétrica a ellos, entonces la imagen podría interpretarse como unidimensional, como argumenta, pero no sería una reducción de dimensionalidad sin pérdida de datos .
whuber

1
Tal vez debería haber dicho "cuadrícula" o "trama" en su lugar. Estaba imaginando una situación en la que los datos se recopilan en una cuadrícula y cada punto de la cuadrícula se asocia con un valor (escalar), pero los valores no son necesariamente la intensidad de la luz como en una imagen (fotográfica). Dicho esto, claramente no estoy balanceando esta respuesta, ¡déjenme intentar editarla en algo más coherente!
Matt Krause

2
+1: las ediciones hacen que tus puntos sean mucho más claros. Gracias por el esfuerzo extra!
whuber

4

Creo que la pregunta detrás de su pregunta es "¿qué hace que la información?". Es una buena pregunta.

Tecnicismo de la gramática:

¿PCA siempre pierde información? No ¿A veces pierde información? Puedes apostar. Puede reconstruir los datos originales de los componentes. Si siempre pierde información, esto no sería posible.

Es útil porque a menudo no pierde información importante cuando la usa para reducir la dimensión de sus datos. Cuando pierde datos, a menudo son los datos de mayor frecuencia y, a menudo, eso es menos importante. Las tendencias generales a gran escala se capturan en los componentes asociados con los valores propios más grandes.


4

n×p

En el caso más sencillo, si una dimensión es una combinación lineal de las otras, se puede reducir la dimensionalidad en una sin perder información, porque la dimensión eliminada podría volver a crearse si es necesario a partir de lo que queda.

Considere este caso tridimensional donde x3 es una combinación lineal exacta de x1 y x2. No es obvio por mirar los datos originales, aunque está claro que x3 está relacionado con los otros dos:

ingrese la descripción de la imagen aquí

Pero si miramos los componentes principales, el tercero es cero (dentro del error numérico).

ingrese la descripción de la imagen aquí

La gráfica de los dos primeros componentes principales es la misma que la gráfica de x1 contra x2, solo rotada (ok, no es tan obvio que quise decir, trataré de explicarlo mejor más adelante) :

ingrese la descripción de la imagen aquí

Hemos reducido la dimensionalidad en uno, pero conservamos toda la información, según cualquier definición razonable.

Esto se extiende más allá de la reducción de dimensión lineal también, aunque naturalmente se vuelve más complejo de ilustrar. El punto es que la respuesta general es "no", no cuando algunas de las dimensiones son funciones de una combinación de las otras.

Código R:

library(GGally)


n <- 10^3
dat <- data.frame(x1=runif(n, 0, 3), x2=rnorm(n))
dat$x3 <- with(dat, x1 + x2)

ggpairs(dat)

pc <- princomp(dat)
plot(pc)

par(mfrow=c(1,2))
with(dat, plot(dat$x1, dat$x2, col="red", main="Original data", bty="l"))
with(pc, plot(scores[,1], scores[,2], col="blue", main="Scores from principal components(\n(rotated)", bty="l"))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.