IA 101
¿Qué es la Reducción de Dimensionalidad?

¿Qué es la Reducción de Dimensionalidad?
Reducción de dimensionalidad es un proceso utilizado para reducir la dimensionalidad de un conjunto de datos, tomando muchas características y representándolas como menos características. Por ejemplo, la reducción de dimensionalidad se podría utilizar para reducir un conjunto de datos de veinte características a solo unas pocas características. La reducción de dimensionalidad se utiliza comúnmente en tareas de aprendizaje no supervisado para crear automáticamente clases a partir de muchas características. Para entender mejor por qué y cómo se utiliza la reducción de dimensionalidad, examinaremos los problemas asociados con los datos de alta dimensionalidad y los métodos más populares de reducción de dimensionalidad.
Más Dimensiones Lleva a la Sobreajuste
La dimensionalidad se refiere al número de características/columnas dentro de un conjunto de datos.
A menudo se asume que en el aprendizaje automático, más características son mejores, ya que crean un modelo más preciso. Sin embargo, más características no necesariamente se traducen en un mejor modelo.
Las características de un conjunto de datos pueden variar ampliamente en términos de su utilidad para el modelo, con muchas características siendo de poca importancia. Además, cuanto más características contenga el conjunto de datos, más muestras se necesitan para garantizar que las diferentes combinaciones de características estén bien representadas en los datos. Por lo tanto, el número de muestras aumenta en proporción con el número de características. Más muestras y más características significan que el modelo necesita ser más complejo, y a medida que los modelos se vuelven más complejos, se vuelven más sensibles a la sobreajuste. El modelo aprende los patrones en los datos de entrenamiento demasiado bien y no logra generalizar a los datos fuera de la muestra.
Reducir la dimensionalidad de un conjunto de datos tiene varios beneficios. Como se mencionó, los modelos más simples son menos propensos a la sobreajuste, ya que el modelo tiene que hacer menos suposiciones sobre cómo las características se relacionan entre sí. Además, menos dimensiones significan menos potencia de cálculo necesaria para entrenar los algoritmos. De manera similar, se necesita menos espacio de almacenamiento para un conjunto de datos que tiene una dimensionalidad más pequeña. Reducir la dimensionalidad de un conjunto de datos también puede permitirle utilizar algoritmos que no son adecuados para conjuntos de datos con muchas características.
Métodos Comunes de Reducción de Dimensionalidad
La reducción de dimensionalidad puede ser por selección de características o ingeniería de características. La selección de características es donde el ingeniero identifica las características más relevantes del conjunto de datos, mientras que la ingeniería de características es el proceso de crear nuevas características combinando o transformando otras características.
La selección y la ingeniería de características se pueden realizar de forma programática o manual. Cuando se seleccionan y se ingenian características de forma manual, es típico visualizar los datos para descubrir correlaciones entre las características y las clases. Realizar la reducción de dimensionalidad de esta manera puede ser bastante intensiva en términos de tiempo y, por lo tanto, algunas de las formas más comunes de reducir la dimensionalidad involucran el uso de algoritmos disponibles en bibliotecas como Scikit-learn para Python. Estos algoritmos comunes de reducción de dimensionalidad incluyen: Análisis de Componentes Principales (PCA), Descomposición en Valor Singular (SVD) y Análisis Discriminante Lineal (LDA).
Los algoritmos utilizados en la reducción de dimensionalidad para tareas de aprendizaje no supervisado son típicamente PCA y SVD, mientras que los utilizados para la reducción de dimensionalidad de aprendizaje supervisado son típicamente LDA y PCA. En el caso de los modelos de aprendizaje supervisado, las nuevas características generadas se alimentan simplemente en el clasificador de aprendizaje automático. Tenga en cuenta que los usos descritos aquí son solo casos de uso generales y no las únicas condiciones en las que se pueden utilizar estas técnicas. Los algoritmos de reducción de dimensionalidad descritos anteriormente son simplemente métodos estadísticos y se utilizan fuera de los modelos de aprendizaje automático.
Análisis de Componentes Principales

Foto: Matriz con componentes principales identificados
Análisis de Componentes Principales (PCA) es un método estadístico que analiza las características de un conjunto de datos y resume las características que son las más influyentes. Las características del conjunto de datos se combinan en representaciones que mantienen la mayoría de las características de los datos pero se distribuyen en menos dimensiones. Puede pensar en esto como “aplastar” los datos desde una representación de mayor dimensión a una con solo unas pocas dimensiones.
Como ejemplo de una situación en la que PCA podría ser útil, piense en las diversas formas en que se podría describir el vino. Si bien es posible describir el vino utilizando muchas características muy específicas como los niveles de CO2, los niveles de aeración, etc., dichas características específicas pueden ser relativamente inútiles cuando se intenta identificar un tipo específico de vino. En su lugar, sería más prudente identificar el tipo según características más generales como el sabor, el color y la edad. PCA se puede utilizar para combinar características más específicas y crear características que sean más generales, útiles y menos propensas a causar sobreajuste.
PCA se lleva a cabo determinando cómo las características de entrada varían desde la media con respecto a las demás, determinando si existen relaciones entre las características. Para hacer esto, se crea una matriz de covarianza, estableciendo una matriz compuesta por las covarianzas con respecto a los pares posibles de las características del conjunto de datos. Esto se utiliza para determinar las correlaciones entre las variables, con una covarianza negativa que indica una correlación inversa y una covarianza positiva que indica una correlación positiva.
Los componentes principales (más influyentes) del conjunto de datos se crean combinando linealmente las variables iniciales, lo que se hace con la ayuda de conceptos de álgebra lineal llamados autovalores y autovectores. Las combinaciones se crean para que los componentes principales no estén correlacionados entre sí. La mayoría de la información contenida en las variables iniciales se comprime en los primeros componentes principales, lo que significa que se han creado nuevas características (los componentes principales) que contienen la información del conjunto de datos original en un espacio de menor dimensión.
Descomposición en Valor Singular

Foto: Por Cmglee – Trabajo propio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297
Descomposición en Valor Singular (SVD) se utiliza para simplificar los valores dentro de una matriz, reduciendo la matriz a sus partes constituyentes y haciendo que los cálculos con esa matriz sean más fáciles. SVD se puede utilizar tanto para matrices de valor real como complejo, pero para los fines de esta explicación, examinaremos cómo descomponer una matriz de valor real.
Supongamos que tenemos una matriz compuesta por datos de valor real y nuestro objetivo es reducir el número de columnas/características dentro de la matriz, similar al objetivo de PCA. Al igual que PCA, SVD comprimirá la dimensionalidad de la matriz mientras preserve la mayor cantidad posible de la variabilidad de la matriz. Si queremos operar en la matriz A, podemos representar la matriz A como tres matrices llamadas U, D y V. La matriz A está compuesta por los elementos x * y, mientras que la matriz U está compuesta por elementos X * X (es una matriz ortogonal). La matriz V es una matriz ortogonal diferente que contiene elementos y * y. La matriz D contiene los elementos x * y y es una matriz diagonal.
Para descomponer los valores para la matriz A, necesitamos convertir los valores singulares originales de la matriz en los valores diagonales que se encuentran dentro de una nueva matriz. Cuando se trabaja con matrices ortogonales, sus propiedades no cambian si se multiplican por otros números. Por lo tanto, podemos aproximar la matriz A aprovechando esta propiedad. Cuando multiplicamos las matrices ortogonales entre sí con una transpuesta de la matriz V, el resultado es una matriz equivalente a nuestra matriz A original.
Cuando la matriz A se descompone en las matrices U, D y V, contienen los datos que se encuentran dentro de la matriz A. Sin embargo, las columnas más a la izquierda de las matrices contendrán la mayoría de los datos. Podemos tomar solo estas primeras columnas y tener una representación de la matriz A que tiene muchas menos dimensiones y la mayoría de los datos dentro de A.
Análisis Discriminante Lineal

Izquierda: Matriz antes de LDA, Derecha: Eje después de LDA, ahora separable
Análisis Discriminante Lineal (LDA) es un proceso que toma datos de un gráfico multidimensional y los proyecta sobre un gráfico lineal. Puede imaginar esto pensando en un gráfico bidimensional lleno de puntos de datos que pertenecen a dos clases diferentes. Supongamos que los puntos están dispersos de tal manera que no se puede dibujar una línea que los separe limpiamente. Para manejar esta situación, los puntos que se encuentran en el gráfico 2D se pueden reducir a un gráfico 1D (una línea). Esta línea tendrá todos los puntos de datos distribuidos a lo largo de ella y, con suerte, se podrá dividir en dos secciones que representen la mejor separación posible de los datos.
Cuando se realiza LDA, hay dos objetivos principales. El primer objetivo es minimizar la varianza para las clases, mientras que el segundo objetivo es maximizar la distancia entre las medias de las dos clases. Estos objetivos se logran creando un nuevo eje que existirá en el gráfico 2D. El eje recién creado actúa para separar las dos clases según los objetivos descritos anteriormente. Después de que se ha creado el eje, los puntos que se encuentran en el gráfico 2D se colocan a lo largo del eje.
Hay tres pasos necesarios para mover los puntos originales a una nueva posición a lo largo del nuevo eje. En el primer paso, se utiliza la distancia entre las medias de las clases individuales (la varianza entre clases) para calcular la separabilidad de las clases. En el segundo paso, se calcula la varianza dentro de las diferentes clases, lo que se hace determinando la distancia entre la muestra y la media para la clase en cuestión. En el paso final, se crea el espacio de menor dimensión que maximiza la varianza entre las clases.
La técnica LDA logra los mejores resultados cuando las medias para las clases de destino están muy separadas entre sí. LDA no puede separar eficazmente las clases con un eje lineal si las medias de las distribuciones se superponen.












