Biclustering em Scikit-Learn

Beginner

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

Introdução

O biclustering é um método que agrupa simultaneamente linhas e colunas de uma matriz de dados. Isto permite-nos identificar submatrizes dentro da matriz de dados que possuem propriedades específicas. O biclustering é útil em vários domínios, incluindo análise de dados, processamento de imagem e bioinformática.

Neste laboratório, aprenderemos a realizar biclustering utilizando o módulo sklearn.cluster.bicluster no scikit-learn. Exploraremos dois algoritmos de biclustering comuns: Co-Clustering Espectral e Biclustering Espectral. Estes algoritmos diferem na forma como definem e atribuem linhas e colunas a biclusters.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Importar bibliotecas e conjunto de dados necessários

Primeiro, vamos importar as bibliotecas necessárias e carregar um conjunto de dados de amostra que usaremos para o biclustering.

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

## Carregar dados de amostra
data = np.arange(100).reshape(10, 10)

Executar Co-Clustering Espectral

Agora, vamos realizar o biclustering utilizando o algoritmo de Co-Clustering Espectral. Este algoritmo encontra biclusters com valores mais elevados em comparação com outras linhas e colunas.

## Inicializar e ajustar o modelo de Co-Clustering Espectral
model_co = SpectralCoclustering(n_clusters=3, random_state=0)
model_co.fit(data)

## Obter a associação de clusters de linhas e colunas
row_clusters_co = model_co.row_labels_
column_clusters_co = model_co.column_labels_

Executar Biclustering Espectral

Em seguida, vamos realizar o biclustering utilizando o algoritmo de Biclustering Espectral. Este algoritmo pressupõe que a matriz de dados possui uma estrutura de tabuleiro de xadrez oculta.

## Inicializar e ajustar o modelo de Biclustering Espectral
model_bi = SpectralBiclustering(n_clusters=(2, 3), random_state=0)
model_bi.fit(data)

## Obter a associação de clusters de linhas e colunas
row_clusters_bi = model_bi.row_labels_
column_clusters_bi = model_bi.column_labels_

Visualizar os resultados

Finalmente, vamos visualizar as estruturas de bicluster obtidas dos algoritmos de Co-Clustering Espectral e Biclustering Espectral.

## Visualização para Co-Clustering Espectral
print("Co-Clustering Espectral:")
print("Clusters de linhas:")
print(row_clusters_co)
print("Clusters de colunas:")
print(column_clusters_co)

## Visualização para Biclustering Espectral
print("\nBiclustering Espectral:")
print("Clusters de linhas:")
print(row_clusters_bi)
print("Clusters de colunas:")
print(column_clusters_bi)

Resumo

Neste laboratório, aprendemos como realizar biclustering utilizando os algoritmos de Co-Clustering Espectral e Biclustering Espectral no scikit-learn. O biclustering permite agrupar simultaneamente linhas e colunas de uma matriz de dados para identificar submatrizes com propriedades específicas. O biclustering pode ser útil em diversas tarefas de análise de dados, como identificar padrões em dados de expressão gênica ou encontrar estrutura em conjuntos de dados de imagens.