Biclustering dans Scikit-Learn

Beginner

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

Introduction

Le biclustering est une méthode qui effectue simultanément le regroupement des lignes et des colonnes d'une matrice de données. Cela nous permet d'identifier des sous-matrices dans la matrice de données qui ont des propriétés spécifiques. Le biclustering est utile dans divers domaines, y compris l'analyse de données, le traitement d'images et l'informatique bio.

Dans ce laboratoire, nous allons apprendre à effectuer le biclustering à l'aide du module sklearn.cluster.bicluster dans scikit-learn. Nous allons explorer deux algorithmes de biclustering courants : le co-clustering spectral et le biclustering spectral. Ces algorithmes diffèrent par la manière dont ils définissent et attribuent les lignes et les colonnes aux biclusters.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.

Importez les bibliothèques et le jeu de données nécessaires

Tout d'abord, importons les bibliothèques nécessaires et chargeons un jeu de données d'échantillonnage que nous utiliserons pour le biclustering.

import numpy as np
from sklearn.cluster import SpectralCoclustering, SpectralBiclustering

## Chargez les données d'échantillonnage
data = np.arange(100).reshape(10, 10)

Effectuez le co-clustering spectral

Maintenant, effectuons le biclustering à l'aide de l'algorithme de co-clustering spectral. Cet algorithme trouve des biclusters avec des valeurs plus élevées par rapport à d'autres lignes et colonnes.

## Initialisez et ajustez le modèle de co-clustering spectral
model_co = SpectralCoclustering(n_clusters=3, random_state=0)
model_co.fit(data)

## Obtenez la appartenance aux clusters de lignes et de colonnes
row_clusters_co = model_co.row_labels_
column_clusters_co = model_co.column_labels_

Effectuez le biclustering spectral

Ensuite, effectuons le biclustering à l'aide de l'algorithme de biclustering spectral. Cet algorithme suppose que la matrice de données a une structure d'échiquier cachée.

## Initialisez et ajustez le modèle de biclustering spectral
model_bi = SpectralBiclustering(n_clusters=(2, 3), random_state=0)
model_bi.fit(data)

## Obtenez la appartenance aux clusters de lignes et de colonnes
row_clusters_bi = model_bi.row_labels_
column_clusters_bi = model_bi.column_labels_

Visualisez les résultats

Enfin, visualisons les structures de biclusters obtenues à partir des algorithmes de co-clustering spectral et de biclustering spectral.

## Visualisation pour le co-clustering spectral
print("Co-clustering spectral :")
print("Clusters de lignes :")
print(row_clusters_co)
print("Clusters de colonnes :")
print(column_clusters_co)

## Visualisation pour le biclustering spectral
print("\nBiclustering spectral :")
print("Clusters de lignes :")
print(row_clusters_bi)
print("Clusters de colonnes :")
print(column_clusters_bi)

Sommaire

Dans ce laboratoire, nous avons appris à effectuer le biclustering à l'aide des algorithmes de co-clustering spectral et de biclustering spectral dans scikit-learn. Le biclustering nous permet de regrouper simultanément les lignes et les colonnes d'une matrice de données pour identifier des sous-matrices avec des propriétés spécifiques. Le biclustering peut être utile dans diverses tâches d'analyse de données, telles que l'identification de motifs dans les données d'expression génique ou la découverte de structures dans les ensembles de données d'images.