IA 101

¿Qué es la Reducción de Dimensionalidad?

mm

¿Qué es la Reducción de Dimensionalidad?

La 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 Llevan a la Sobreadaptación

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 cuán útiles son 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 dentro de 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 sobreadaptación. 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 sobreadaptación, ya que el modelo tiene que hacer menos suposiciones sobre cómo las características están relacionadas 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 permitir 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 manera programática o manual. Cuando se seleccionan y se ingenian características de manera manual, es común visualizar los datos para descubrir correlaciones entre características y clases. Realizar la reducción de dimensionalidad de esta manera puede ser bastante intensivo en términos de tiempo y, por lo tanto, algunos de los métodos más comunes de reducción de 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 de 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 características generadas se alimentan directamente al 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

El 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 extienden a lo largo de menos dimensiones. Puedes 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, piensa en las diversas maneras 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 aireación, etc., esas 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. El 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 sobreadaptación.

El PCA se lleva a cabo determinando cómo las características de entrada varían desde la media con respecto a cada una de ellas, determinando si existen relaciones entre las características. Para hacer esto, se crea una matriz de covarianza, que establece una matriz compuesta por las covarianzas con respecto a los pares posibles de 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 correlación positiva que indica una correlación positiva.

Los componentes principales (más influyentes) del conjunto de datos se crean mediante combinaciones lineales de las variables iniciales, lo que se hace con la ayuda de conceptos de álgebra lineal llamados valores propios y vectores propios. Las combinaciones se crean de tal manera 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 de Valor Singular

Foto: Por Cmglee – Trabajo propio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

La Descomposición de Valor Singular (SVD) se utiliza para simplificar los valores dentro de una matriz, reduciendo la matriz a sus partes constituyentes y facilitando los cálculos con esa matriz. La SVD se puede utilizar tanto para matrices de valores reales como complejos, pero para los fines de esta explicación, examinaremos cómo descomponer una matriz de valores reales.

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 del PCA. Al igual que el PCA, la SVD comprimirá la dimensionalidad de la matriz mientras conserva la mayor parte 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 originales, 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 de la matriz A, necesitamos convertir los valores singulares originales en los valores diagonales que se encuentran dentro de una nueva matriz. Al trabajar 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 matrices U, D y V, estas matrices contienen los datos que se encuentran en 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

El Análisis Discriminante Lineal (LDA) es un proceso que toma datos de un gráfico multidimensional y los proyecta sobre un gráfico lineal. Puedes 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 se puede 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 los medios de las dos clases. Estos objetivos se logran creando un nuevo eje que existirá en el gráfico 2D. El nuevo eje 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 los medios 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 el medio 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 los medios para las clases objetivo están muy separados entre sí. LDA no puede separar eficazmente las clases con un eje lineal si los medios para las distribuciones se superponen.

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 los medios para las clases objetivo están muy separados entre sí. LDA no puede separar eficazmente las clases con un eje lineal si los medios para las distribuciones se superponen.

Bloguero y programador con especialidades en Machine Learning y Deep Learning temas. Daniel espera ayudar a otros a utilizar el poder de la IA para el bien social.