Biclustering en Scikit-Learn

Beginner

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

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.