Merge pull request 'senkin_alexander_lab_4 is ready' (#112) from senkin_alexander_lab_4 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/112
This commit is contained in:
commit
d4dbce9b09
1
senkin_alexander_lab_4/.gitignore
vendored
Normal file
1
senkin_alexander_lab_4/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.idea/
|
31
senkin_alexander_lab_4/README.md
Normal file
31
senkin_alexander_lab_4/README.md
Normal file
@ -0,0 +1,31 @@
|
||||
Лабораторная №4
|
||||
|
||||
Вариант №4
|
||||
|
||||
Задание на лабораторную:
|
||||
|
||||
Использовать метод кластеризации DBSCAN, самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо он подходит для решения сформулированной задачи. Было решено делать кластеризацию по летальныи исходам и магнитуде торнадо.
|
||||
|
||||
Как запустить лабораторную работу:
|
||||
|
||||
Чтобы увидеть работу программы, нужно запустить исполняемый питон файл senkin_alexander_lab_4.py, после чего будет отрисован график, по которому можно сделать выводы.
|
||||
|
||||
Библиотеки:
|
||||
|
||||
Sklearn. Предоставляет инструменты и алгоритмы, которые упрощают задачи, связанные с машинным обучением.
|
||||
|
||||
Matplotlib - это библиотека для создания графиков и визуализации данных. Она используется для отображения данных на графиках.
|
||||
|
||||
Описание программы:
|
||||
|
||||
- Загружаем данные из csv файла
|
||||
- Выбираем количество данных для обработки, например 10000
|
||||
- Выделяем признаки, по которым будем проводить кластеризацию (fat - фатальные исходы, mag - магнитуды)
|
||||
- Применяем кластеризацию
|
||||
- Рисуем график
|
||||
|
||||
Программа рисует следующий график:
|
||||
|
||||
![img.png](img.png)
|
||||
|
||||
Смотря на график можно сделать вывод, что среди 10000 записей о происходящих торнадо, большинство приходятся на 4 магнитуду с чуть больше 0 летальных исходов, а торнадо с амплитудой 5 имеет только шумовые точки. Также мы видим много шума - фиолетовых точек, что говорит нам о том, что алгоритм не очень эффективен для решаемой задачи.
|
BIN
senkin_alexander_lab_4/img.png
Normal file
BIN
senkin_alexander_lab_4/img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
27
senkin_alexander_lab_4/senkin_alexander_lab_4.py
Normal file
27
senkin_alexander_lab_4/senkin_alexander_lab_4.py
Normal file
@ -0,0 +1,27 @@
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
from sklearn.cluster import DBSCAN
|
||||
# Загрузка данных из csv-файла
|
||||
data = pd.read_csv('us_tornado_dataset_1950_2021.csv')
|
||||
|
||||
|
||||
# Выбираем 10000 данных ()
|
||||
data_subset = data.head(10000)
|
||||
|
||||
# Выделяем признаки (карат и глубина)
|
||||
features = data_subset[['fat', 'mag']]
|
||||
|
||||
# Создание модели DBSCAN
|
||||
dbscan = DBSCAN(eps=0.1, min_samples=5)
|
||||
|
||||
data_subset = data_subset.copy()
|
||||
|
||||
# Применение DBSCAN к данным
|
||||
data_subset['cluster'] = dbscan.fit_predict(features)
|
||||
|
||||
# Создание графика для визуализации кластеров
|
||||
plt.scatter(data_subset['fat'], data_subset['mag'], c=data_subset['cluster'], cmap='rainbow')
|
||||
plt.xlabel('Фатальные исходы (fat)')
|
||||
plt.ylabel('Магнитуда (mag)')
|
||||
plt.title('Кластеризация данных о фаматльных исходах и магнитуде торнадо')
|
||||
plt.show()
|
67559
senkin_alexander_lab_4/us_tornado_dataset_1950_2021.csv
Normal file
67559
senkin_alexander_lab_4/us_tornado_dataset_1950_2021.csv
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user