Демонстрация алгоритма спектральной совместной кластеризации#

Этот пример демонстрирует, как сгенерировать набор данных и бикластеризовать его с помощью алгоритма Spectral Co-Clustering.

Набор данных генерируется с использованием make_biclusters функция, которая создает матрицу малых значений и внедряет бикластер с большими значениями. Затем строки и столбцы перемешиваются и передаются алгоритму Spectral Co-Clustering. Перестановка перемешанной матрицы для обеспечения непрерывности бикластеров показывает, насколько точно алгоритм нашел бикластеры.

  • Original dataset
  • Shuffled dataset
  • After biclustering; rearranged to show biclusters
consensus score: 1.000

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

import numpy as np
from matplotlib import pyplot as plt

from sklearn.cluster import SpectralCoclustering
from sklearn.datasets import make_biclusters
from sklearn.metrics import consensus_score

data, rows, columns = make_biclusters(
    shape=(300, 300), n_clusters=5, noise=5, shuffle=False, random_state=0
)

plt.matshow(data, cmap=plt.cm.Blues)
plt.title("Original dataset")

# shuffle clusters
rng = np.random.RandomState(0)
row_idx = rng.permutation(data.shape[0])
col_idx = rng.permutation(data.shape[1])
data = data[row_idx][:, col_idx]

plt.matshow(data, cmap=plt.cm.Blues)
plt.title("Shuffled dataset")

model = SpectralCoclustering(n_clusters=5, random_state=0)
model.fit(data)
score = consensus_score(model.biclusters_, (rows[:, row_idx], columns[:, col_idx]))

print("consensus score: {:.3f}".format(score))

fit_data = data[np.argsort(model.row_labels_)]
fit_data = fit_data[:, np.argsort(model.column_labels_)]

plt.matshow(fit_data, cmap=plt.cm.Blues)
plt.title("After biclustering; rearranged to show biclusters")

plt.show()

Общее время выполнения скрипта: (0 минут 0.260 секунд)

Связанные примеры

Демонстрация алгоритма Spectral Biclustering

Демонстрация алгоритма Spectral Biclustering

Бикластеризация документов с помощью алгоритма спектральной совместной кластеризации

Бикластеризация документов с помощью алгоритма спектральной совместной кластеризации

Сегментация изображения греческих монет на регионы

Сегментация изображения греческих монет на регионы

Демонстрация структурированной иерархической кластеризации Уорда на изображении монет

Демонстрация структурированной иерархической кластеризации Уорда на изображении монет

Галерея, созданная Sphinx-Gallery