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()