Merge pull request 'gusev_vladislav_lab_4 is ready' (#63) from gusev_vladislav_lab_4 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/63
This commit is contained in:
commit
994129b8a9
20
gusev_vladislav_lab_4/README.md
Normal file
20
gusev_vladislav_lab_4/README.md
Normal file
@ -0,0 +1,20 @@
|
||||
### Вариант 9
|
||||
### Задание на лабораторную работу:
|
||||
Использовать метод кластеризации DBSCAN, самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо он подходит для решения сформулированной задачи.
|
||||
### Как запустить лабораторную работу:
|
||||
Выполняем файл gusev_vladislav_lab_1.py, на экране будет нарисовано 3 графика
|
||||
### Технологии
|
||||
Pandas - библиотека для анализа данных. Она предоставляет структуры данных и функции для работы с табличными данными. Mathplotlib - библиотека для визуализации данных двумерной и трехмерной графикой. Sklearn - библиотека с большим количеством алгоритмов машинного обучения.
|
||||
### По коду
|
||||
1) Загружаем данные из csv файла
|
||||
2) Выбираем 10000 данных (потому что при сильном увеличении данных метод DBSCAN сильно загружает систему и программа начинает виснуть)
|
||||
3) Создаем модель DBSCAN, предварительно выбрав нужные данные
|
||||
4) Применяем DBSCAN к данным и создаём график
|
||||
|
||||
Что получаем:
|
||||
|
||||
![img.png](img.png)
|
||||
|
||||
### Вывод
|
||||
- По данному графику можно сказать, что в основном глубина алмазов розница от ~57-~66, а карат в районе 1 (0.6-1.4)
|
||||
- В целом на графике видно очень много шума (фиолетовые точки), но также немало более светлых - близких к красным. Визуально можно сказать, что эффективность этого метода 30%-40%.
|
53944
gusev_vladislav_lab_4/diamonds_prices.csv
Normal file
53944
gusev_vladislav_lab_4/diamonds_prices.csv
Normal file
File diff suppressed because it is too large
Load Diff
25
gusev_vladislav_lab_4/gusev_vladislav_lab_4.py
Normal file
25
gusev_vladislav_lab_4/gusev_vladislav_lab_4.py
Normal file
@ -0,0 +1,25 @@
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
from sklearn.cluster import DBSCAN
|
||||
# Загрузка данных из csv-файла
|
||||
data = pd.read_csv('diamonds_prices.csv', index_col='diamond_id')
|
||||
|
||||
|
||||
# Выбираем 10000 данных ()
|
||||
data_subset = data.head(10000)
|
||||
|
||||
# Выделяем признаки (карат и глубина)
|
||||
features = data_subset[['carat', 'depth']]
|
||||
|
||||
# Создание модели DBSCAN
|
||||
dbscan = DBSCAN(eps=0.1, min_samples=5)
|
||||
|
||||
# Применение DBSCAN к данным
|
||||
data_subset['cluster'] = dbscan.fit_predict(features)
|
||||
|
||||
# Создание графика для визуализации кластеров
|
||||
plt.scatter(data_subset['carat'], data_subset['depth'], c=data_subset['cluster'], cmap='rainbow')
|
||||
plt.xlabel('Карат (carat)')
|
||||
plt.ylabel('Глубина (depth)')
|
||||
plt.title('Кластеризация данных о карате и глубине алмазов')
|
||||
plt.show()
|
BIN
gusev_vladislav_lab_4/img.png
Normal file
BIN
gusev_vladislav_lab_4/img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
Loading…
Reference in New Issue
Block a user