¿Cuál es la forma más fácil de entender el análisis de componentes principales?

fuente: Análisis de componentes principales 4 Dummies: vectores propios, valores propios y reducción de dimensiones

Análisis de componentes principales 4 Dummies: vectores propios, valores propios y reducción de dimensiones

Después de haber estado en las ciencias sociales durante un par de semanas, parece que una gran cantidad de análisis cuantitativo se basa en el análisis de componentes principales (PCA). Esto generalmente se conoce en conjunto con valores propios, vectores propios y muchos números. Entonces, ¿qué está pasando? ¿Es esto una jerga matemática para que los académicos que no son matemáticos dejen de hacer preguntas? Tal vez, pero también es una herramienta útil para usar cuando tienes que mirar datos. Esta publicación brindará una visión general muy amplia de PCA, describiendo los vectores propios y los valores propios (que necesita saber para comprenderlo) y mostrando cómo puede reducir las dimensiones de los datos utilizando PCA. Como dije, es una buena herramienta para usar en la teoría de la información, y aunque las matemáticas son un poco complicadas, solo necesitas tener una idea general de lo que está sucediendo para poder usarlo de manera efectiva.

Hay un montón de cosas para procesar en esta publicación, pero eliminé la mayor cantidad posible de matemáticas y puse muchas fotos.

¿Qué es el análisis de componentes principales?

En primer lugar, el análisis de componentes principales es un buen nombre. Hace lo que dice en la lata. PCA encuentra los componentes principales de los datos.

A menudo es útil medir datos en términos de sus componentes principales en lugar de hacerlo en un eje xy normal. Entonces, ¿cuáles son los componentes principales? Son la estructura subyacente en los datos. Son las direcciones donde hay más variación, las direcciones donde los datos están más dispersos. Esto es más fácil de explicar a modo de ejemplo. Aquí hay algunos triángulos en forma de óvalo:

Imagina que los triángulos son puntos de datos. Para encontrar la dirección donde hay más varianza, encuentre la línea recta donde los datos están más dispersos cuando se proyectan sobre ella. Una línea recta vertical con los puntos proyectados sobre ella se verá así:

Los datos no están muy dispersos aquí, por lo tanto, no tienen una gran variación. Probablemente no sea el componente principal.

Una línea horizontal con líneas proyectadas se verá así:

En esta línea, los datos están mucho más dispersos, tienen una gran variación. De hecho, no hay una línea recta que pueda dibujar que tenga una varianza mayor que una horizontal. Por lo tanto, una línea horizontal es el componente principal en este ejemplo.

Afortunadamente, podemos usar las matemáticas para encontrar el componente principal en lugar de dibujar líneas y triángulos con formas desiguales. Aquí es donde entran los vectores propios y los valores propios.

Vectores propios y valores propios

Cuando obtenemos un conjunto de puntos de datos, como los triángulos anteriores, podemos deconstruir el conjunto en vectores propios y valores propios. Los vectores propios y los valores existen en pares: cada vector propio tiene un valor propio correspondiente. Un vector propio es una dirección, en el ejemplo anterior, el vector propio era la dirección de la línea (vertical, horizontal, 45 grados, etc.). Un valor propio es un número que le indica cuánta varianza hay en los datos en esa dirección; en el ejemplo anterior, el valor propio es un número que nos dice qué tan dispersos están los datos en la línea. El vector propio con el valor propio más alto es, por lo tanto, el componente principal.

Bien, aunque en el último ejemplo podría apuntar mi línea en cualquier dirección, resulta que no hay muchos vectores / valores propios en un conjunto de datos. De hecho, la cantidad de vectores propios / valores que existen es igual al número de dimensiones que tiene el conjunto de datos. Digamos que estoy midiendo la edad y las horas en internet. hay 2 variables, es un conjunto de datos de 2 dimensiones, por lo tanto, hay 2 vectores / valores propios. Si estoy midiendo la edad, las horas en Internet y las horas en el teléfono móvil, hay 3 variables, un conjunto de datos en 3-D, entonces 3 vectores / valores propios. La razón de esto es que los vectores propios colocan los datos en un nuevo conjunto de dimensiones, y estas nuevas dimensiones tienen que ser iguales a la cantidad original de dimensiones. Esto suena complicado, pero nuevamente un ejemplo debería dejarlo claro.

Aquí hay un gráfico con el óvalo:

Por el momento el óvalo está en un eje xy. x podría ser la edad yy horas en internet. Estas son las dos dimensiones en las que mi conjunto de datos se está midiendo actualmente. Ahora recuerde que el componente principal del óvalo era una línea que lo dividía a lo largo:

Resulta que el otro vector propio (recuerde que solo hay dos de ellos, ya que es un problema 2-D) es perpendicular al componente principal. Como dijimos, los vectores propios tienen que poder abarcar todo el área xy, para hacer esto (de manera más efectiva), las dos direcciones deben ser ortogonales (es decir, 90 grados) entre sí. Es por eso que los ejes xey son ortogonales entre sí en primer lugar. Sería realmente incómodo si el eje y estuviera a 45 grados con respecto al eje x. Entonces el segundo vector propio se vería así:

Los vectores propios nos han dado un eje mucho más útil para enmarcar los datos. Ahora podemos volver a enmarcar los datos en estas nuevas dimensiones. Se vería así ::

Tenga en cuenta que no se ha hecho nada a los datos en sí. Solo lo estamos mirando desde un ángulo diferente. Entonces, obtener los vectores propios lo lleva de un conjunto de ejes a otro. Estos ejes son mucho más intuitivos para la forma de los datos ahora. Estas direcciones son donde hay más variación, y allí es donde hay más información (piense en esto al revés. Si no hubiera variación en los datos [por ejemplo, todo era igual a 1] no habría información, es un estadística muy aburrida: en este escenario, el valor propio para esa dimensión sería igual a cero, porque no hay variación).

Pero, ¿qué representan estos vectores propios en la vida real? Los viejos ejes estaban bien definidos (edad y horas en Internet, o cualquier otra cosa que haya medido explícitamente), mientras que los nuevos no. Aquí es donde necesitas pensar. A menudo hay una buena razón por la cual estos ejes representan mejor los datos, pero las matemáticas no te dirán por qué, eso es para que lo resuelvas.

¿Cómo ayudan PCA y los vectores propios en el análisis real de los datos? Bueno, hay bastantes usos, pero uno principal es la reducción de dimensiones.

Reducción de dimensiones

PCA se puede utilizar para reducir las dimensiones de un conjunto de datos. La reducción de dimensiones es análoga a ser filosóficamente reduccionista: reduce los datos a sus componentes básicos, eliminando cualquier parte innecesaria.

Digamos que está midiendo tres cosas: edad, horas en Internet y horas en dispositivos móviles. Hay 3 variables, por lo que es un conjunto de datos 3D. 3 dimensiones es un gráfico x, y y z, mide el ancho, la profundidad y la altura (como las dimensiones en el mundo real). Ahora imagine que los datos se forman en un óvalo como los de arriba, pero que este óvalo está en un plano. es decir, todos los puntos de datos se encuentran en una hoja de papel dentro de este gráfico 3D (con ancho y profundidad, pero sin altura). Me gusta esto:

Cuando encontramos los 3 vectores propios / valores del conjunto de datos (recuerde 3D probem = 3 vectores propios), 2 de los vectores propios tendrán valores propios grandes, y uno de los vectores tendrá un valor propio de cero. Los primeros dos vectores propios mostrarán el ancho y la profundidad de los datos, pero debido a que no hay altura en los datos (está en una hoja de papel) el tercer valor propio será cero. En la siguiente imagen, ev1 es el primer vector propio (el que tiene el mayor valor propio, el componente principal), ev2 es el segundo vector propio (que tiene un valor propio distinto de cero) y ev3 es el tercer vector propio, que tiene un valor propio cero.

Ahora podemos reorganizar nuestros ejes para que estén a lo largo de los vectores propios, en lugar de la edad, las horas en Internet y las horas en dispositivos móviles. Sin embargo, sabemos que ev3, el tercer vector propio, es bastante inútil. Por lo tanto, en lugar de representar los datos en 3 dimensiones, podemos deshacernos de la dirección inútil y solo representarla en 2 dimensiones, como antes:

Esta es la reducción de dimensiones. Hemos reducido el problema de un problema 3D a uno 2D, eliminando una dimensión. La reducción de dimensiones ayuda a simplificar los datos y facilita la visualización.

Tenga en cuenta que podemos reducir las dimensiones incluso si no hay un valor propio cero. Imagina que hicimos el ejemplo nuevamente, excepto que en lugar del óvalo en un plano 2D, tenía una pequeña cantidad de altura. Todavía habría 3 vectores propios, sin embargo, esta vez todos los valores propios no serían cero. Los valores serían algo así como 10, 8 y 0.1. Los vectores propios correspondientes a 10 y 8 son las dimensiones en las que hay mucha información, el vector propio correspondiente a 0.1 no tendrá mucha información, por lo que podemos descartar el tercer vector propio para simplificar el conjunto de datos.

Hay muchos recursos en línea y en libros, de todos modos creo que una mezcla entre una intuición visual y conceptos matemáticos es muy útil para comprender a fondo el concepto.

En mi opinión, estas notas de Andrew Ng son una buena manera de entender el concepto, ya que dan una buena intuición detrás de la teoría: http://cs229.stanford.edu/notes/… .

De todos modos, puede encontrar muchos videos en línea que muestran los diversos pasos del algoritmo, obviamente necesita algunos conocimientos básicos de álgebra lineal.

More Interesting

¿Cómo puedo comparar diferentes arquitecturas de redes neuronales sin entrenarlas durante semanas? ¿Hay alguna forma práctica de verificar si las redes merecen la capacitación completa o no?

¿Qué tan difícil es aprender TensorFlow?

¿Cuáles son algunos casos de uso para el aprendizaje automático en realidad virtual?

¿Cómo analizan los algoritmos de aprendizaje automático y los algoritmos basados ​​en léxico las palabras coloquiales en un análisis de sentimientos de Twitter?

Word2vec: ¿Cómo puede el método de entrenamiento jerárquico soft-max de CBOW garantizar su autoconsistencia?

¿Cómo pueden beneficiarse los MOOC de sus datos?

¿Qué motores de búsqueda hacen un buen uso de las capacidades de búsqueda semántica?

¿Debería Facebook usar el aprendizaje automático para identificar a los usuarios con potencial de convertirse en un asesino en masa?

¿Cuál es la mejor implementación distribuida de Word2Vec: Gensim o Spark?

Si pronostico grupos en un conjunto de trenes completo y los uso como características categóricas y realizo CV, ¿sería una fuga?

¿Qué tema es adecuado para un taller de aprendizaje automático para estudiantes de secundaria típicos?

En el modelado de datos, ¿podría ser una buena idea crear algorítmicamente una característica grande para activar las meta características actuales antes del modelado?

Estoy acostumbrado a codificar con C ++ y C #. ¿Cuál recomendaría implementar proyectos de ML a pequeña escala (NN y CNN clásicos) sin reinventar la rueda?

¿Qué matemática debería revisar / aprender si quiero comprender a fondo el modelado de efectos mixtos / modelado de regresión?

¿Por qué el algoritmo de agrupación k-means se considera un algoritmo de aprendizaje no supervisado? ¿Qué es "aprender"? ¿No es solo otro algoritmo codicioso?