Introducción
El biclustering es un método que agrupa simultáneamente las filas y las columnas de una matriz de datos. Esto nos permite identificar submatrices dentro de la matriz de datos que tienen propiedades específicas. El biclustering es útil en varios dominios, incluyendo el análisis de datos, el procesamiento de imágenes y la bioinformática.
En este laboratorio, aprenderemos cómo realizar biclustering utilizando el módulo sklearn.cluster.bicluster de scikit-learn. Exploraremos dos algoritmos de biclustering comunes: Co-Clustering Espectral y Biclustering Espectral. Estos algoritmos difieren en cómo definen y asignan filas y columnas a los biclusters.
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 y el conjunto de datos
Primero, importemos las bibliotecas necesarias y carguemos un conjunto de datos de muestra que usaremos para el biclustering.
import numpy as np
from sklearn.cluster import SpectralCoclustering, SpectralBiclustering
## Cargar datos de muestra
data = np.arange(100).reshape(10, 10)
Realizar Co-Clustering Espectral
Ahora, realicemos el biclustering utilizando el algoritmo de Co-Clustering Espectral. Este algoritmo encuentra biclusters con valores más altos en comparación con otras filas y columnas.
## Inicializar y ajustar el modelo de Co-Clustering Espectral
model_co = SpectralCoclustering(n_clusters=3, random_state=0)
model_co.fit(data)
## Obtener la pertenencia de los clusters de filas y columnas
row_clusters_co = model_co.row_labels_
column_clusters_co = model_co.column_labels_
Realizar Biclustering Espectral
A continuación, realicemos el biclustering utilizando el algoritmo de Biclustering Espectral. Este algoritmo asume que la matriz de datos tiene una estructura de tablero de ajedrez oculta.
## Inicializar y ajustar el modelo de Biclustering Espectral
model_bi = SpectralBiclustering(n_clusters=(2, 3), random_state=0)
model_bi.fit(data)
## Obtener la pertenencia de los clusters de filas y columnas
row_clusters_bi = model_bi.row_labels_
column_clusters_bi = model_bi.column_labels_
Visualizar los resultados
Finalmente, visualicemos las estructuras de biclusters obtenidas a partir de los algoritmos de Co-Clustering Espectral y Biclustering Espectral.
## Visualización para Co-Clustering Espectral
print("Co-Clustering Espectral:")
print("Clusters de filas:")
print(row_clusters_co)
print("Clusters de columnas:")
print(column_clusters_co)
## Visualización para Biclustering Espectral
print("\nBiclustering Espectral:")
print("Clusters de filas:")
print(row_clusters_bi)
print("Clusters de columnas:")
print(column_clusters_bi)
Resumen
En este laboratorio, aprendimos cómo realizar biclustering utilizando los algoritmos de Co-Clustering Espectral y Biclustering Espectral en scikit-learn. El biclustering nos permite agrupar simultáneamente las filas y columnas de una matriz de datos para identificar submatrices con propiedades específicas. El biclustering puede ser útil en varias tareas de análisis de datos, como la identificación de patrones en datos de expresión génica o la búsqueda de estructura en conjuntos de datos de imágenes.