Reducción de dimensionalidad con algoritmos de PLS

Beginner

This tutorial is from open-source community. Access the source code

Introducción

El módulo cross_decomposition en scikit-learn contiene estimadores supervisados para la reducción de dimensionalidad y la regresión, específicamente para los algoritmos de Mínimos Cuadrados Parciales (PLS). Estos algoritmos encuentran la relación fundamental entre dos matrices proyectándolas en un subespacio de menor dimensión de modo que la covarianza entre las matrices transformadas sea máxima.

En este laboratorio, exploraremos los diferentes algoritmos de descomposición cruzada proporcionados por scikit-learn y aprenderemos cómo utilizarlos para tareas de reducción de dimensionalidad y regresión.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

Comencemos importando las bibliotecas necesarias para este laboratorio.

import numpy as np
from sklearn.cross_decomposition import PLSRegression, PLSCanonical, CCA, PLSSVD

Cargar el conjunto de datos

A continuación, cargaremos un conjunto de datos de muestra para demostrar los algoritmos de descomposición cruzada. Para simplificar, crearemos dos matrices X e Y con valores aleatorios.

np.random.seed(0)
X = np.random.random((100, 5))
Y = np.random.random((100, 3))

PLSRegression

Ajustar el modelo de PLSRegression

Comenzaremos con el algoritmo PLSRegression, que es una forma de regresión lineal regularizada. Ajustaremos el modelo a nuestros datos.

pls = PLSRegression(n_components=2)
pls.fit(X, Y)
Transformar los datos

Podemos transformar los datos originales utilizando el modelo ajustado. Los datos transformados tendrán una dimensión reducida.

X_transformed = pls.transform(X)
Y_transformed = pls.transform(Y)

PLSCanonical

Ajustar el modelo de PLSCanonical

A continuación, usaremos el algoritmo PLSCanonical, que encuentra la correlación canónica entre dos matrices. Este algoritmo es útil cuando hay multicolinealidad entre las características.

plsc = PLSCanonical(n_components=2)
plsc.fit(X, Y)
Transformar los datos

Podemos transformar los datos originales utilizando el modelo ajustado. Los datos transformados tendrán una dimensión reducida.

X_transformed = plsc.transform(X)
Y_transformed = plsc.transform(Y)

CCA

Ajustar el modelo de CCA

El algoritmo CCA es un caso especial de PLS y significa Análisis de Correlación Canónica. Encuentra la correlación entre dos conjuntos de variables.

cca = CCA(n_components=2)
cca.fit(X, Y)
Transformar los datos

Podemos transformar los datos originales utilizando el modelo ajustado. Los datos transformados tendrán una dimensión reducida.

X_transformed = cca.transform(X)
Y_transformed = cca.transform(Y)

PLSSVD

Ajustar el modelo de PLSSVD

El algoritmo PLSSVD es una versión simplificada de PLSCanonical que calcula la Descomposición en Valores Singulares (SVD) de la matriz de covarianza cruzada solo una vez. Este algoritmo es útil cuando el número de componentes está limitado a uno.

plssvd = PLSSVD(n_components=1)
plssvd.fit(X, Y)
Transformar los datos

Podemos transformar los datos originales utilizando el modelo ajustado. Los datos transformados tendrán una dimensión reducida.

X_transformed = plssvd.transform(X)
Y_transformed = plssvd.transform(Y)

Resumen

En este laboratorio, exploramos los algoritmos de descomposición cruzada proporcionados por scikit-learn. Aprendimos sobre PLSRegression, PLSCanonical, CCA y PLSSVD. También vimos cómo ajustar estos modelos a los datos y transformar los datos en representaciones de menor dimensión. Estos algoritmos son útiles para la reducción de dimensionalidad y las tareas de regresión, especialmente cuando hay multicolinealidad entre las características o cuando el número de variables es mayor que el número de muestras.