Загрузка данных


import numpy as np
from sklearn.cluster import KMeans
import pandas as pd

# Создаем синтетические данные (нормализованные от 0 до 1)
# Столбцы: [Экспорт, Импорт, Диверсификация]
data = np.array([
    [0.90, 0.20, 0.30], # Регион А
    [0.10, 0.80, 0.40], # Регион Б
    [0.50, 0.50, 0.90], # Регион В
    [0.85, 0.15, 0.25], # Регион Г
    [0.20, 0.75, 0.45]  # Регион Д
])

# Инициализируем модель K-Means
# Допустим, мы хотим выделить 3 типа регионов
kmeans = KMeans(n_clusters=3, random_state=42)

# Обучаем модель
kmeans.fit(data)

# Получаем результаты
labels = kmeans.labels_
centers = kmeans.cluster_centers_

import matplotlib.pyplot as plt

# Настраиваем цвета для кластеров
colors = ['red', 'blue', 'green']
cluster_names = ['Импортеры', 'Экспортеры', 'Универсалы']

plt.figure(figsize=(10, 6))

# Рисуем только точки регионов
for i in range(3):
    # Фильтруем данные: берем только те строки, которые ИИ отнес к кластеру i
    points = data[labels == i]
    plt.scatter(points[:, 0], points[:, 1], s=150, c=colors[i], edgecolors='black', alpha=0.7, label=f'{cluster_names[i]}')

# Оформление
plt.title('Сегментация регионов РФ (Кластеризация)', fontsize=14)
plt.xlabel('Объем Экспорта (нормализованный)', fontsize=12)
plt.ylabel('Объем Импорта (нормализованный)', fontsize=12)
plt.legend()
plt.grid(True, linestyle='--', alpha=0.5)

plt.show()