Бикластеризация в Scikit-Learn

Beginner

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

Введение

Бикластеризация - это метод, который одновременно группирует строки и столбцы матрицы данных. Это позволяет нам определить подматрицы в матрице данных, которые обладают определенными свойствами. Бикластеризация полезна в различных областях, в том числе в анализе данных, обработке изображений и биоинформатике.

В этом практическом занятии мы научимся выполнять бикластеризацию с использованием модуля sklearn.cluster.bicluster в scikit-learn. Мы рассмотрим два популярных алгоритма бикластеризации: Спектральное кокластеризация и Спектральная бикластеризация. Эти алгоритмы отличаются тем, как они определяют и назначают строки и столбцы бикластерам.

Советы по работе с ВМ

После запуска ВМ кликните в верхнем левом углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки и датасет

Сначала импортируем необходимые библиотеки и загрузим примерный датасет, который мы будем использовать для бикластеризации.

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

## Load sample data
data = np.arange(100).reshape(10, 10)

Выполним Спектральное кокластеризацию

Теперь выполним бикластеризацию с использованием алгоритма Спектральное кокластеризация. Этот алгоритм находит бикластеры с более высокими значениями по сравнению с другими строками и столбцами.

## Initialize and fit the Spectral Co-Clustering model
model_co = SpectralCoclustering(n_clusters=3, random_state=0)
model_co.fit(data)

## Get row and column cluster membership
row_clusters_co = model_co.row_labels_
column_clusters_co = model_co.column_labels_

Выполним Спектральную бикластеризацию

Далее выполним бикластеризацию с использованием алгоритма Спектральная бикластеризация. Этот алгоритм предполагает, что матрица данных имеет скрытую шахматную структуру.

## Initialize and fit the Spectral Biclustering model
model_bi = SpectralBiclustering(n_clusters=(2, 3), random_state=0)
model_bi.fit(data)

## Get row and column cluster membership
row_clusters_bi = model_bi.row_labels_
column_clusters_bi = model_bi.column_labels_

Визуализируем результаты

Наконец, давайте визуализируем структуры бикластеров, полученные с использованием алгоритмов Спектральное кокластеризация и Спектральная бикластеризация.

## Visualization for Spectral Co-Clustering
print("Spectral Co-Clustering:")
print("Row clusters:")
print(row_clusters_co)
print("Column clusters:")
print(column_clusters_co)

## Visualization for Spectral Biclustering
print("\nSpectral Biclustering:")
print("Row clusters:")
print(row_clusters_bi)
print("Column clusters:")
print(column_clusters_bi)

Резюме

В этом практическом занятии мы узнали, как выполнять бикластеризацию с использованием алгоритмов Спектральное кокластеризация и Спектральная бикластеризация в scikit - learn. Бикластеризация позволяет одновременно кластеризовать строки и столбцы матрицы данных, чтобы выявить подматрицы с определенными свойствами. Бикластеризация может быть полезна в различных задачах анализа данных, таких как выявление паттернов в данных о генной экспрессии или поиск структуры в наборах данных изображений.