shestakova_maria_lab_4 is ready

This commit is contained in:
Мария Ш 2023-11-29 21:23:17 +03:00
parent a8c58683dd
commit 9155f0ea81
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()