Merge pull request 'shestakova_maria_lab_4 is ready' (#223) from shestakova_maria_lab_4 into main

Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/223
This commit is contained in:
Alexey 2023-12-07 15:22:38 +04:00
commit fef78f2633
3 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,25 @@
### Задание:
Использовать метод кластеризации для данных по алгоритму класстеризации linkage. Интерпретировать результаты и оценить, насколько хорошо он подходит для решения задачи: Группировка людей с расстройствами сна на основе их возраста, пола и уровня стресса с целью выявления схожих характеристик и обнаружения возможных проблем со сном.
### Технологии:
Библиотека scipy, библиотека matplotlib, библиотека pandas
### Что делает лабораторная:
Загружаются данные из файла, далее они подготавливаются путем выбора только нужных столбцов. Выделяются признаки для кластеризации, Выполняется кластеризация с помощью функции linkage. В данном случае используется метод "ward", который минимизирует дисперсию внутри кластеров. Визуализируется дендрограмма
### Как запустить:
Первая часть лабораторной работы запускается в файле `shestakova_maria_lab_4.py` через Run: появляется диалоговое окно
### Вывод:
![img.png](dendro.png)
На оси x отображаются образцы (samples) или объекты, которые были кластеризованы. Каждый образец представлен вертикальной линией в дендрограмме.
На оси y отображается расстояние (distance) между кластерами. Расстояние измеряется в единицах, которые зависят от используемой метрики и метода кластеризации. Чем выше на оси y находится точка, тем больше расстояние между соответствующими кластерами.
Дендрограмма представляет собой графическое представление иерархической кластеризации, где каждый узел на дендрограмме представляет собой объединение кластеров или отдельный образец.

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 KiB

View File

@ -0,0 +1,24 @@
import pandas as pd
from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt
# Загрузка данных
data = pd.read_csv('sleep.csv')
# Подготовка данных
data = data[['Age', 'Gender', 'Stress Level']]
data = data.dropna()
# Выделение признаков для кластеризации
features = pd.get_dummies(data[['Age', 'Stress Level', 'Gender']])
# Выполнение кластеризации
clusters = linkage(features, method='ward')
# Визуализация дендрограммы
plt.figure(figsize=(10, 6))
plt.title('Dendrogram')
plt.xlabel('Samples')
plt.ylabel('Distance')
dendrogram(clusters, leaf_rotation=90., leaf_font_size=8.)
plt.show()