Извлечение меток кластеров
В предыдущем упражнении вы увидели, что промежуточная кластеризация образцов зерна на высоте 6 даёт 3 кластера. Теперь используйте функцию fcluster(), чтобы извлечь метки кластеров для этой промежуточной кластеризации, и сравните их с сортами зерна с помощью таблицы сопряжённости.
Иерархическая кластеризация уже выполнена, и mergings содержит результат функции linkage(). Список varieties задаёт сорт каждого образца зерна.
Это упражнение является частью курса
Обучение без учителя на Python
Инструкции к упражнению
- Импортируйте:
pandasс псевдонимомpd.fclusterизscipy.cluster.hierarchy.
- Выполните плоскую иерархическую кластеризацию с помощью функции
fcluster()на основеmergings. Задайте максимальную высоту6и аргументcriterion='distance'. - Создайте DataFrame
dfс двумя столбцами'labels'и'varieties', используя соответственноlabelsиvarietiesв качестве значений. Эта часть уже выполнена за вас. - Создайте таблицу сопряжённости
ctна основеdf['labels']иdf['varieties'], чтобы подсчитать, сколько раз каждый сорт зерна совпадает с каждой меткой кластера.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Perform the necessary imports
import ____ as ____
from ____ import ____
# Use fcluster to extract labels: labels
labels = ____
# Create a DataFrame with labels and varieties as columns: df
df = pd.DataFrame({'labels': labels, 'varieties': varieties})
# Create crosstab: ct
ct = ____
# Display ct
print(ct)