arzamaskina_milana_lab_4 is ready
This commit is contained in:
parent
a8c58683dd
commit
eb6c303793
63105
arzamaskina_milana_lab_4/CO2.csv
Normal file
63105
arzamaskina_milana_lab_4/CO2.csv
Normal file
File diff suppressed because it is too large
Load Diff
112
arzamaskina_milana_lab_4/README.md
Normal file
112
arzamaskina_milana_lab_4/README.md
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
# Лабораторная работа №3
|
||||||
|
|
||||||
|
## Кластеризация
|
||||||
|
|
||||||
|
#### ПИбд-41 Арзамаскина Милана
|
||||||
|
#### Вариант №2 (2 % 5 = 2)
|
||||||
|
|
||||||
|
## Задание:
|
||||||
|
|
||||||
|
Использовать метод кластеризации по варианту для данных из таблицы 1 по варианту (таблица 9),
|
||||||
|
самостоятельно сформулировав задачу.
|
||||||
|
Интерпретировать результаты и оценить, насколько хорошо он подходит для решения сформулированной вами задачи.
|
||||||
|
|
||||||
|
#### Формулировка задачи:
|
||||||
|
Группировка стран на основе их характеристик:
|
||||||
|
количество выбросов от добычи нефтепродуктов, газа, угля в 2020 году.
|
||||||
|
С помощью алгоритма кластеризации: linkage.
|
||||||
|
|
||||||
|
## Данные:
|
||||||
|
|
||||||
|
Этот набор данных обеспечивает углубленный анализ глобальных выбросов CO2 на уровне страны, позволяя лучше понять,
|
||||||
|
какой вклад каждая страна вносит в глобальное совокупное воздействие человека на климат.
|
||||||
|
Он содержит информацию об общих выбросах, а также от добычи и сжигания угля, нефти, газа, цемента и других источников.
|
||||||
|
Данные также дают разбивку выбросов CO2 на душу населения по странам, показывая,
|
||||||
|
какие страны лидируют по уровням загрязнения, и определяют потенциальные области,
|
||||||
|
где следует сосредоточить усилия по сокращению выбросов.
|
||||||
|
Этот набор данных необходим всем, кто хочет получить информацию о своем воздействии на окружающую среду
|
||||||
|
или провести исследование тенденций международного развития.
|
||||||
|
|
||||||
|
Данные организованы с использованием следующих столбцов:
|
||||||
|
|
||||||
|
+ Country: название страны
|
||||||
|
+ ISO 3166-1 alpha-3: трехбуквенный код страны
|
||||||
|
+ Year: год данных исследования
|
||||||
|
+ Total: общее количество CO2, выброшенный страной в этом году
|
||||||
|
+ Coal: количество CO2, выброшенное углем в этом году
|
||||||
|
+ Oil: количество выбросов нефти
|
||||||
|
+ Gas: количество выбросов газа
|
||||||
|
+ Cement: количество выбросов цемента
|
||||||
|
+ Flaring: сжигание на факелах уровни выбросов
|
||||||
|
+ Other: другие формы, такие как промышленные процессы
|
||||||
|
+ Per Capita: столбец «на душу населения»
|
||||||
|
|
||||||
|
|
||||||
|
### Какие технологии использовались:
|
||||||
|
|
||||||
|
Используемые библиотеки:
|
||||||
|
* scipy.cluster.hierarchy
|
||||||
|
* pandas
|
||||||
|
* matplotlib
|
||||||
|
* seaborn
|
||||||
|
|
||||||
|
### Как запустить:
|
||||||
|
|
||||||
|
* установить python, scipy.cluster.hierarchy, pandas, matplotlib, seaborn
|
||||||
|
* запустить проект (стартовая точка - main.py)
|
||||||
|
|
||||||
|
### Что делает программа:
|
||||||
|
|
||||||
|
* Загружает набор данных из файла 'CO2.csv', который содержит информацию о выбросах странами CO2 в год от различной промышленной деятельности.
|
||||||
|
* Очищает набор данных путём удаления строк с нулевыми значениями и глобальными значениями по всем странам (строки 'Global') из набора.
|
||||||
|
* Отбирает данные по странам за 2020 год.
|
||||||
|
* Выбирает набор признаков (features) из данных, которые будут использоваться для кластеризации.
|
||||||
|
* Применяет алгоритм linkage.
|
||||||
|
* Формирует 4 кластера данных с помощью функции fcluster.
|
||||||
|
* Выводит таблицу со списком стран, их характеристиками и номером кластера, к которому они относятся.
|
||||||
|
* Отображает диаграмму результатов кластеризации seaborn.
|
||||||
|
|
||||||
|
|
||||||
|
#### Результаты работы программы:
|
||||||
|
|
||||||
|
![Result](img_1.png)
|
||||||
|
![Result](img.png)
|
||||||
|
|
||||||
|
### Вывод:
|
||||||
|
|
||||||
|
Для кластеризации данных было использовано 4 кластера для группировки стран на основе их характеристик:
|
||||||
|
количество выбросов от добычи нефтепродуктов, газа, угля в 2020 году.
|
||||||
|
На кластеры разбивались 47 стран.
|
||||||
|
|
||||||
|
На диаграмме можно наблюдать, что практически все страны относятся к первому кластеру,
|
||||||
|
а 2, 3, 4 кластер содержит всего по одной стране.
|
||||||
|
|
||||||
|
+ Кластер 1:
|
||||||
|
|
||||||
|
Включает страны с маленьким объёмом выбросов от добычи газа, нефти и угля в 2020 году.
|
||||||
|
В данную группу входят такие страны, как Швейцария, Турция, Норвегия и др.
|
||||||
|
Опираясь на результаты кластеризации, можно сказать, что страны имеют малое количество месторождений газа, нефти и угля,
|
||||||
|
либо не занимаются их добычей, либо ведут мероприятия по смягчению последствий от загрязнений.
|
||||||
|
|
||||||
|
+ Кластер 2:
|
||||||
|
|
||||||
|
Включает одну страну - Россию.
|
||||||
|
По диаграмме можно сказать, что в стране выбросы от добычи нефти и угля также малы, как и в странах первого кластера.
|
||||||
|
Однако, выбросы от добычи газа в несколько раз больше.
|
||||||
|
Страна, которая занимается преимущественно добычей газа.
|
||||||
|
|
||||||
|
+ Кластер 3:
|
||||||
|
|
||||||
|
Содержит также одну страну - США. У страны рекордный объём выбросов от добычи газа, также страна этого кластера
|
||||||
|
отличается бОльшим объемом выбросов от добычи нефти (можно наблюдать на диаграмме по размеру точки).
|
||||||
|
Страна, лидирующая по объёму выбросов от добычи газа. Страна является лидером по запасам природного газа.
|
||||||
|
|
||||||
|
+ Кластер 4:
|
||||||
|
|
||||||
|
Включает страну - Китай. Судя по диаграмме кластеризации Китай производит большой объём выбросов
|
||||||
|
в процессе добычи нефти и рекордный в процессе добычи угля.
|
||||||
|
Страна, лидирующая по выбросам от добычи угля и нефти, а также средняя по выбросам от газа.
|
||||||
|
Опираясь на результаты кластеризации, можно сказать, что Китай - лидер по добыче угля.
|
||||||
|
|
||||||
|
Данная кластеризация на 4 кластера хорошо подходит для распределения стран
|
||||||
|
на группы по объёму выбросов от добычи нефти, газа и угля.
|
BIN
arzamaskina_milana_lab_4/img.png
Normal file
BIN
arzamaskina_milana_lab_4/img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 602 KiB |
BIN
arzamaskina_milana_lab_4/img_1.png
Normal file
BIN
arzamaskina_milana_lab_4/img_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
44
arzamaskina_milana_lab_4/main.py
Normal file
44
arzamaskina_milana_lab_4/main.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import pandas as pd
|
||||||
|
from scipy.cluster.hierarchy import linkage, fcluster
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import seaborn as sns
|
||||||
|
|
||||||
|
# Кластеризация: Группировка стран на основе их характеристик:
|
||||||
|
# количество выбросов от добычи нефтепродуктов, газа, угля в 2020 году.
|
||||||
|
|
||||||
|
# Загружаем данные, отбираем данные за 2020 год
|
||||||
|
# и удаляем строки, в которых данные отсутствуют
|
||||||
|
data_first = pd.read_csv('CO2.csv')
|
||||||
|
data_first = data_first.dropna()
|
||||||
|
data = data_first[data_first['Year'] == 2020]
|
||||||
|
data = data[data.Country != 'Global']
|
||||||
|
names = data['Country']
|
||||||
|
|
||||||
|
# Выделение признаков
|
||||||
|
features = data[['Coal', 'Oil', 'Gas']]
|
||||||
|
|
||||||
|
# Применение алгоритма linkage
|
||||||
|
link_cl = linkage(features, method='ward', metric='euclidean')
|
||||||
|
|
||||||
|
# Кластеризация на 3 кластера
|
||||||
|
clusters = fcluster(link_cl, 4, criterion='maxclust')
|
||||||
|
|
||||||
|
# Добавление информации о кластерах в исходные данные
|
||||||
|
features['cluster'] = clusters
|
||||||
|
|
||||||
|
# Диаграмма результатов кластеризации
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
sns.scatterplot(x='Coal', y='Gas', size='Oil',
|
||||||
|
sizes=(10, 200), hue='cluster', palette='viridis', data=features)
|
||||||
|
plt.title('Clustering Results')
|
||||||
|
plt.xlabel('Coal')
|
||||||
|
plt.ylabel('Gas')
|
||||||
|
|
||||||
|
# Вывод таблицы с результатами кластеризации
|
||||||
|
# Добавление наименований стран
|
||||||
|
features.insert(loc=0, column='country', value=names)
|
||||||
|
# Вывод результатов кластеризации
|
||||||
|
result_clust = features[['cluster', 'country', 'Coal', 'Oil', 'Gas']]
|
||||||
|
print(result_clust)
|
||||||
|
|
||||||
|
plt.show()
|
Loading…
Reference in New Issue
Block a user