Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
1.3 kB
1
Indexable
Never
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import seaborn as sns

# Подготовка данных
features = ['MO_dealer_monthly_ton_GZPN', 'KP_dealer_monthly_ton_GZPN', 'total_monthly_ton_dil']
df_clustering = df[features].dropna()  # Удаляем пропущенные значения

# Стандартизация признаков
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df_clustering)

# Применяем KMeans
kmeans = KMeans(n_clusters=4, random_state=42)  # Выбираем 4 кластера для примера
df_clustering['cluster'] = kmeans.fit_predict(df_scaled)

# Применяем PCA для уменьшения размерности до 2D для визуализации
pca = PCA(n_components=2)
df_pca = pca.fit_transform(df_scaled)
df_clustering['pca1'] = df_pca[:, 0]
df_clustering['pca2'] = df_pca[:, 1]

# Визуализация
plt.figure(figsize=(10, 8))
sns.scatterplot(x='pca1', y='pca2', hue='cluster', data=df_clustering, palette='viridis')
plt.title('Визуализация кластеров клиентов')
plt.xlabel('PCA Component 1')
plt.ylabel('PCA Component 2')
plt.legend(title='Cluster')
plt.show()
Leave a Comment