Часть 4: Алгоритм спектральной совместной кластеризации
С возвращением, любители машинного обучения, а также новички, которые только начинают с него 🚀. Сегодня мы говорим об алгоритме спектральной кокластеризации. Этот пример взят отсюда. Я очень благодарен за все уже существующие ресурсы, которые значительно облегчают изучение кодирования. Без лишних слов, давайте сразу погрузимся 💦
Алгоритм спектральной совместной кластеризации
В этом примере Shout показано, как сгенерировать набор данных и выполнить его бикластеризацию с помощью алгоритма спектральной совместной кластеризации.
С помощью функции make_bicluster мы можем сгенерировать набор данных. Эта функция создает матрицу малых значений и имплантирует бикластер с большими значениями. Строки и столбцы перемешиваются и передаются алгоритму Spectral Co-Clustering. Затем мы можем изменить перетасованную матрицу, чтобы показать, насколько точно алгоритм находит бикластеры.
Во-первых, нам нужно импортировать необходимые библиотеки.
import numpy as np from matplotlib import pyplot as plt from sklearn.datasets import make_biclusters from sklearn.cluster import SpectralCoclustering from sklearn.metrics import consensus_score
Тогда все готово к работе! Давайте начнем и попробуем код, предоставленный Кемалем Эреном.
# generate dataset with make_bicluster data, rows, columns = make_biclusters( shape=(300, 300), n_clusters=5, noise=5, shuffle=False, random_state=0 ) # plot the original dataset 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] #plot the shuffled dataset plt.matshow(data, cmap=plt.cm.Blues) plt.title("Shuffled dataset") # build the model model = SpectralCoclustering(n_clusters=5, random_state=0) model.fit(data) score = consensus_score(model.biclusters_, (rows[:, row_idx], columns[:, col_idx])) # output the achieved score print("consensus score: {:.3f}".format(score)) # sort the fit_data fit_data = data[np.argsort(model.row_labels_)] fit_data = fit_data[:, np.argsort(model.column_labels_)] # plot the rearranged data plt.matshow(fit_data, cmap=plt.cm.Blues) plt.title("After biclustering; rearranged to show biclusters") plt.show()
Вот выходные графики:
Результат консенсусной оценки составил 1,000 (3f).
Это была ваша ежедневная доза машинного обучения — краткий пример возможностей, которые может предложить scikit-learn. Удачного кодирования/изучения!
Спасибо за чтение этой статьи! Если вы хотите поддержать меня, вы можете сделать это следующим образом:
1. Подпишитесь на меня здесь, на Medium или в Twitter, Instagram, TikTok или YouTube.
2. Подпишитесь на статью.
> 3. Оставьте короткий комментарий
Я очень ценю любую поддержку! Каждое ваше взаимодействие с контентом поможет мне расти и со временем предоставлять более качественный контент. 🚀
Спасибо, VEGXCODES
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.