7_Clustering_Project
Это финальный проект курса по кластеризации. В отличие от предыдущих лабораторных, здесь нет фиксированного датасета и нет единственно правильного ответа. Задача — найти интересные данные, кластеризовать их и рассказать что-то содержательное о том, что получилось.
Хорошая кластеризация — это не та, у которой высокий Silhouette Score. Это та, после которой вы можете сказать: «вот этот кластер — фильмы-катастрофы 70-х, а вот этот — французские артхаусные комедии».
Этап 1 — Выбор датасета
Найдите датасет самостоятельно. Он должен удовлетворять двум условиям: быть достаточно большим (от 500 объектов) и допускать содержательную интерпретацию кластеров — то есть каждый объект должен быть чем-то, о чём можно рассуждать.
Хорошие источники и примеры тематик:
- Kaggle — фильмы, игры, музыка, рецепты, книги, вакансии
- HuggingFace Datasets — тексты, новости, отзывы
- UCI ML Repository — табличные данные
- Собственный датасет, собранный через API (Spotify, Steam, TMDB и др.)
⚠️ Не берите MNIST, Iris, Wine и другие датасеты из предыдущих лабораторных. Цель — найти что-то своё и интересное.
У каждого студента в группе должен быть свой уникальный датасет. Для отслеживания, какой датасет взяли, впишите себя в таблицу. Если вы не вписали себя и повторились с кем-то, такая работа приниматься не будет.
Обоснуйте выбор: почему этот датасет интересен для кластеризации? Что вы ожидаете найти?
Этап 2 — Предобработка
Приведите данные в форму, пригодную для кластеризации. Что именно делать — зависит от типа данных, но в общем случае:
Табличные данные: удалить дубликаты и пропуски, нормализовать числовые признаки, закодировать категориальные (Label / One-Hot / Embedding).
Тексты: превратить в векторы — через TF-IDF или эмбеддинги (sentence-transformers, например all-MiniLM-L6-v2).
Смешанные данные (например, фильм = жанр + год + описание + рейтинг): объедините признаки осмысленно, при необходимости снизьте размерность через PCA перед кластеризацией.
Опишите все шаги предобработки и объясните свои решения.
Этап 3 — Кластеризация
Примените минимум два метода кластеризации из пройденных на курсе и сравните результаты:
- K-Means
- DBSCAN
- Agglomerative Clustering
- K-Modes (для категориальных данных)
- Нейросетевой энкодер + K-Means
Для каждого метода подберите гиперпараметры (не оставляйте значения по умолчанию). Используйте метрики для сравнения методов между собой.
Метрики — это вспомогательный инструмент сравнения методов, а не финальная цель.
Этап 4 — Анализ кластеров ⭐
Это главная часть проекта.
Для каждого кластера изучите, какие объекты в него попали, и дайте кластеру человекочитаемое описание. Описание должно быть осмысленным — не «кластер 2 содержит 341 объект со средним рейтингом 7.3», а что-то содержательное:
«Кластер 0 — азиатские боевики 90-х с низким бюджетом» «Кластер 3 — психологические триллеры с высоким рейтингом на IMDb» «Кластер 1 — рецепты с большим количеством молочных продуктов, десерты и выпечка»
Для каждого кластера укажите:
- 5–10 типичных примеров объектов (самые центральные, близкие к центроиду)
- 2–3 аномальных объекта (самые далёкие от центроида) — почему они попали сюда?
- Словесное описание кластера: что объединяет эти объекты?
- Насколько кластер однородный или размытый?
Если кластеры не поддаются интерпретации — это тоже результат. Объясните почему: возможно, признаки выбраны неудачно, или данные не имеют естественной кластерной структуры.
Визуализация
Визуализируйте данные и кластеры в 2D с помощью PCA или t-SNE. На графике должны быть видны границы кластеров и подписаны их названия (те, что вы придумали в Этапе 4).
Дополнительно — любые графики, которые помогают понять структуру кластеров: облака слов, примеры изображений из кластера, распределения признаков по кластерам.
Что сдавать
Jupyter Notebook со всеми этапами, графиками и комментариями. Код должен воспроизводиться. В конце — раздел «Выводы»: что нашли, какой метод сработал лучше и почему, какова содержательная структура данных.
Критерии оценки (сырые баллы)
| Критерий | Баллы |
|---|---|
| Нетривиальный датасет и обоснование выбора | 10 |
| Качественная предобработка | 15 |
| Минимум два метода с подбором параметров | 20 |
| Содержательный анализ и описания кластеров | 35 |
| Визуализация | 10 |
| Выводы | 10 |
| Итого | 100 |
Анализ кластеров весит больше всего остального — потому что именно в нём смысл задачи.