# Лабораторна робота 10. Ієрархічні методи кластеризації > Десята лабораторна робота курсу **«Аналітика даних»**. Спершу **в аудиторії** ви > виконуєте агломеративну кластеризацію «руками» на п'яти точках — будуєте матрицю > відстаней і крок за кроком зливаєте кластери **одиночним** та **повним** зв'язком, > описуючи дендрограму. Потім **удома** реалізуєте агломеративний алгоритм «знизу > догори» **програмою**, яка читає дані з файлу CSV, записує кластери у файл і > **порівнює** якість із алгоритмом $k$-середніх. Робота закріплює > [Лекцію 10](../../Lectures/DA-L10.md). ## Коротко про роботу | | | |---|---| | **Тема** | Ієрархічна (агломеративна) кластеризація; метрики зв'язку; дендрограма; оцінка якості | | **Передумова** | [Лекція 10. Ієрархічні методи кластеризації](../../Lectures/DA-L10.md); [Лекція 9](../../Lectures/DA-L09.md) — $k$-середніх | | **Аудиторна частина** | Агломеративна кластеризація «руками» одиночним і повним зв'язком (з розв'язаннями) | | **Домашня частина** | Програма: читає CSV, кластеризує «знизу догори», записує результат у файл, порівнює з $k$-середніми | | **Оцінювання** | три рівні: базовий **60–74** / середній **75–89** / високий **90–100** | ## Зміст | № | Частина | Файл | |:--:|---|---| | 1 | Мета роботи | [1purpose.md](1purpose.md) | | 2 | Методичні вказівки (теорія + демонстраційний приклад) | [2method.md](2method.md) | | 3 | Аудиторні задачі з розв'язаннями | [3classroom.md](3classroom.md) | | 4 | Домашнє завдання (програма) | [4task.md](4task.md) | | 5 | Зміст звіту | [5report.md](5report.md) | | 6 | Контрольні запитання | [6questions.md](6questions.md) | ## Домовленості - **Дві частини.** Аудиторні задачі ([3classroom.md](3classroom.md)) розбирають спільно «руками» — з них ви розумієте, *що саме* робить програма. Домашнє завдання ([4task.md](4task.md)) — самостійна реалізація агломеративного алгоритму у коді. - **Відстань.** В аудиторних задачах точки одновимірні, тож відстань — це $d(x,y) = |x - y|$. У програмі дані багатовимірні — беруть **евклідову** відстань $d(\mathbf{x},\mathbf{y}) = \sqrt{\sum_k (x_k - y_k)^2}$. - **Метрика зв'язку.** Розрізняйте **одиночний** ($\min$), **повний** ($\max$), **середній** (UPGMA) зв'язок та інші; у звіті завжди зазначайте, яку метрику використано, — від неї залежить результат. - **Мова програмування — на вибір.** Стандартні бібліотеки для читання CSV дозволені; готові функції на кшталт `scipy.cluster.hierarchy.linkage` чи `sklearn` можна брати **лише для перевірки** власної реалізації. ## Підсумок Ієрархічна кластеризація будує **дерево вкладених групувань**, з якого аналітик сам обирає число кластерів. У цій роботі ви навчитеся виконувати агломеративний алгоритм двома метриками зв'язку «руками» (і побачите, що вибір метрики **змінює** результат), а потім автоматизуєте його програмою й **порівняєте** з $k$-середніми за силуетом чи індексом Данна. Це поєднання ручного розбору й реалізації — типовий шлях опанування будь-якого методу аналізу даних у цьому курсі.