IIS_2023_1/verina_daria_lab_4/main.py

33 lines
1.0 KiB
Python
Raw Permalink Normal View History

2023-11-23 01:32:17 +04:00
import pandas as pd
from sklearn.cluster import AgglomerativeClustering
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
# Загрузка данных
df = pd.read_csv('economica.csv')
# Выбор переменных для кластеризации
selected_columns = ['gdppercent', 'oil_prices']
# Предварительная обработка данных
X = df[selected_columns]
# Заполнение пропущенных значений
X.fillna(X.mean(), inplace=True)
# Стандартизация данных
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# Кластеризация методом linkage
cluster = AgglomerativeClustering(n_clusters=3, linkage='ward')
df['cluster'] = cluster.fit_predict(X_scaled)
# Визуализация кластеров
plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=df['cluster'], cmap='Dark2')
plt.xlabel('GDP Percent (Standardized)')
plt.ylabel('Oil Prices (Standardized)')
plt.title('Clustering Results')
plt.savefig(f"result.png")
plt.show()