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