kutygin_andrey_lab_4_ready

This commit is contained in:
UrOldFriendSoul 2023-11-13 21:12:49 +04:00
parent a8c58683dd
commit 2e488e62ee
4 changed files with 68 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -0,0 +1,37 @@
**Задание**
***
Использовать метод кластеризации по варианту для данных из таблицы 1 по варианту(таблица 9),самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо он подходит для решения сформулированной вами задачи
Вариант 16 - dendogram
**Как запустить лабораторную**
***
Запустить файл main.py
**Используемые технологии**
***
Библиотеки pandas, matplotlib, scipy, их компоненты
**Описание лабораторной (программы)**
***
Данный код выполняет иерархическую кластеризацию на основе данных о незавидных наблюдениях НЛО. Вот краткое описание каждого шага кода:
1. Импорт необходимых библиотек: pandas для работы с данными, matplotlib для построения графиков и scipy для иерархической кластеризации.
2. Загрузка данных из файла 'ufo_sighting_data.csv' с помощью функции read_csv() и сохранение их в переменную data.
3. Отбор необходимых столбцов из данных. В данном случае выбраны столбцы 'UFO_shape', 'length_of_encounter_seconds', 'latitude' и 'longitude'.
4. Замена отсутствующих значений (NaN) на значение 'Unknown' с помощью метода fillna().
5. Преобразование данных в числовой формат, если необходимо. В данном примере столбец 'length_of_encounter_seconds' преобразуется в числовой формат с помощью функции pd.to_numeric().
6. Выполнение иерархической кластеризации с использованием функции linkage(). Параметры метода и метрики задаются как 'ward' (метод) и 'euclidean' (метрика).
7. Построение дендрограммы с помощью функции dendrogram(). Размер фигуры устанавливается с помощью функции figure(figsize=(10, 7)). На оси x отображаются наблюдения, на оси y - расстояние. Заголовок и подписи для осей устанавливаются с помощью функций xlabel(), ylabel() и title(). Дендрограмма отображается с помощью функции show().
Данный код позволяет провести кластерный анализ на основе координат местоположения наблюдений НЛО и визуализировать результаты в виде дендрограммы.
**Результат**
***
[Dendogram](Figure_1.png)
Дендрограмма отображает иерархическую структуру кластеров. Каждый вертикальный сегмент на графике представляет собой одно наблюдение НЛО, а каждый горизонтальный сегмент отображает объединение двух кластеров. Чем выше на графике происходит объединение, тем больше расстояние между объединяемыми кластерами.

View File

@ -0,0 +1,30 @@
import pandas as pd
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
# Загрузка данных из таблицы
data = pd.read_csv('ufo_sighting_data.csv')
# Отбор необходимых столбцов
columns = ['UFO_shape', 'length_of_encounter_seconds', 'latitude', 'longitude']
data = data[columns]
# Замена отсутствующих значений
data = data.fillna('Unknown')
# Преобразование данных в числовые значения, если необходимо
# Например, можно преобразовать столбец 'length_of_encounter_seconds' из строкового в числовой формат
data['length_of_encounter_seconds'] = pd.to_numeric(data['length_of_encounter_seconds'], errors='coerce')
# Выполнение иерархической кластеризации
# Можно выбрать разные методы и метрики для кластеризации
# Ниже пример с использованием евклидова расстояния и метода ward
linkage_matrix = linkage(data[['latitude', 'longitude']], method='ward', metric='euclidean')
# Построение дендрограммы
plt.figure(figsize=(10, 7))
dendrogram(linkage_matrix)
plt.xlabel('Наблюдения')
plt.ylabel('Расстояние')
plt.title('Дендрограмма')
plt.show()

File diff suppressed because one or more lines are too long