Агломеративные модели
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 17 из 51.
Автомобили занимают две парковки, между которыми вдоль дороги выстроилась вереница машин. Два способа объединить их в 2 кластера:
scikit-learn выполняет объединение. Укажите, где остановиться, с помощью n_clusters:
from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=2, linkage="ward")
labels = model.fit_predict(X)linkage определяет расстояние между двумя группами:
"ward", значение по умолчанию: сохраняет группы компактными"complete": расстояние между самой удалённой парой элементов"average": среднее расстояние между всеми парами"single": расстояние между самой близкой парой элементов
Single следует цепочкам: здесь дорога поглощает обе автостоянки. Ward формирует компактные, равномерные группы.
Задание
СреднеЗемляника растёт на трёх участках, а ещё несколько растений — вдоль тропинки. Какой метод связывания обнаружит эти участки? plants содержит их координаты.
- Для каждого метода связывания из
linkagesраздели растения на 3 группы. - Выведи размеры групп в виде списка, начиная с самой большой.
- Если в самой большой группе больше половины растений, добавь
chained.
Для другого луга:
ward: [40, 38, 31]
complete: [41, 37, 31]
average: [41, 37, 31]
single: [86, 22, 1] chainedПопробуйте сами
import numpy as np
import pandas as pd
from sklearn.cluster import AgglomerativeClustering
# Расположение 109 кустов лесной земляники на лугу (в метрах): три группы и тропинка
rng = np.random.default_rng(4)
plants = np.round(np.concatenate([
rng.normal([2, 3], 0.8, size=(40, 2)),
rng.normal([9, 4], 1.0, size=(35, 2)),
rng.normal([6, 10], 0.9, size=(25, 2)),
np.column_stack([np.linspace(3, 8, 9), np.linspace(3.2, 4, 9)]) + rng.normal(0, 0.15, size=(9, 2)),
]), 2)
linkages = ["ward", "complete", "average", "single"]
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python