Задание 1. Кластеризация методом k-means
Даны координаты шести объектов:
import numpy as np
X = np.array([
[1, 1],
[1, 3],
[2, 2],
[8, 8],
[9, 8],
[8, 9]
])
Необходимо:
- Создать
модель KMeans с двумя кластерами.
- Установить
random_state=42.
- Обучить
модель.
- Вывести
метки кластеров.
- Вычислить
центры кластеров.
- Вывести
внутрикластерную сумму квадратов.
- Объяснить,
почему количество кластеров нельзя выбирать только по графику elbow.
Задание 2. DBSCAN и иерархическая кластеризация
Дан набор данных:
import numpy as np
X = np.array([
[0.0, 0.0],
[0.2, 0.1],
[0.1, 0.2],
[5.0, 5.0],
[5.2, 5.1],
[5.1, 5.2],
[10.0, 10.0]
])
Необходимо:
- Применить
DBSCAN с eps=0.5 и min_samples=2.
- Вывести
метки кластеров.
- Определить
шумовые объекты.
- Применить
AgglomerativeClustering с двумя кластерами.
- Сравнить
полученные группировки.
- Объяснить
различие между выделением плотных областей и иерархическим объединением
объектов.
Задание 3. PCA и оценка кластеризации
Используя make_blobs, необходимо:
- Создать
150 наблюдений с четырьмя признаками и тремя группами.
- Выполнить
масштабирование признаков.
- Применить
PCA и уменьшить размерность до двух компонент.
- Выполнить
кластеризацию методом k-means при k=3.
- Вычислить
коэффициент силуэта (silhouette_score).
- Вывести
долю объяснённой дисперсии главных компонент.
- Объяснить,
почему качество кластеризации необходимо оценивать не только числовыми
показателями, но и содержательностью полученных групп.