IIS_2023_1/kutygin_andrey_lab_4/main.py

31 lines
1.4 KiB
Python
Raw Normal View History

2023-11-13 21:12:49 +04:00
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()