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.