kutygin_andrey_lab_4_ready
This commit is contained in:
parent
a8c58683dd
commit
2e488e62ee
BIN
kutygin_andrey_lab_4/Figure_1.png
Normal file
BIN
kutygin_andrey_lab_4/Figure_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
37
kutygin_andrey_lab_4/README.md
Normal file
37
kutygin_andrey_lab_4/README.md
Normal 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)
|
||||||
|
|
||||||
|
Дендрограмма отображает иерархическую структуру кластеров. Каждый вертикальный сегмент на графике представляет собой одно наблюдение НЛО, а каждый горизонтальный сегмент отображает объединение двух кластеров. Чем выше на графике происходит объединение, тем больше расстояние между объединяемыми кластерами.
|
30
kutygin_andrey_lab_4/main.py
Normal file
30
kutygin_andrey_lab_4/main.py
Normal 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()
|
1
kutygin_andrey_lab_4/ufo_sighting_data.csv
Normal file
1
kutygin_andrey_lab_4/ufo_sighting_data.csv
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user