使用Kmeans算法对客户数据进行聚类分析完整代码
时间: 2024-05-01 10:23:58 浏览: 143
以下是使用Kmeans算法对客户数据进行聚类分析的完整Python代码:
```python
# 导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 读取数据
df = pd.read_csv('customer_data.csv')
# 数据预处理
X = df.iloc[:, 1:].values
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 拟合KMeans模型
kmeans = KMeans(n_clusters=5, init='k-means++', random_state=42)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[y_kmeans==0, 0], X[y_kmeans==0, 1], s=100, c='red', label='Cluster 1')
plt.scatter(X[y_kmeans==1, 0], X[y_kmeans==1, 1], s=100, c='blue', label='Cluster 2')
plt.scatter(X[y_kmeans==2, 0], X[y_kmeans==2, 1], s=100, c='green', label='Cluster 3')
plt.scatter(X[y_kmeans==3, 0], X[y_kmeans==3, 1], s=100, c='cyan', label='Cluster 4')
plt.scatter(X[y_kmeans==4, 0], X[y_kmeans==4, 1], s=100, c='magenta', label='Cluster 5')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='yellow', label='Centroids')
plt.title('Customer Clusters')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.legend()
plt.show()
```
在该代码中,我们首先导入了必要的库和数据。然后,我们对数据进行了预处理,使用StandardScaler将数据进行了标准化。接着,我们拟合了一个KMeans模型,将客户数据分成5个簇。最后,我们使用matplotlib库可视化了聚类结果,图中展示了5个簇的中心点。
阅读全文