理解 Python 中的 K-Means 聚类:一步步指南
目录
- 数据集简介
- 回顾:肘部法则
- 使用 K-Means 进行预测
- 使用 Matplotlib 可视化聚类
- 解释聚类结果
- 提取特定聚类数据
- 实际应用:目标营销
- 结论与下一步
欢迎回来,朋友们!在本指南中,我们将深入探讨使用 Python 进行 K-Means 聚类,基于我们之前课程中涵盖的基础概念。通过本教程结束时,您将具备实现 K-Means、可视化聚类以及从数据中提取有意义见解的能力。
数据集简介
让我们首先检查我们的数据集,它包含三列:
- 用户 ID
- Instagram 访问得分
- 消费排名
该数据集为应用 K-Means 聚类提供了基础,用于根据用户的 Instagram 活动和消费行为对用户进行细分。
回顾:肘部法则
在上节课中,我们探讨了肘部法则——一种确定 K-Means 中最佳聚类数(k)的技术。通过绘制每个点到其分配的聚类中心的平方距离之和,“肘部”点表明理想的 k,平衡了欠拟合和过拟合。
使用 K-Means 进行预测
要为我们的数据进行聚类分配预测:
- 初始化 K-Means: 使用
KMeans
类自sklearn.cluster
,指定聚类数量(例如,k=4
)。 - 拟合模型: 将 K-Means 算法应用于您的数据集。
- 预测聚类: 使用
kmeans.predict(X)
将每个数据点分配到一个聚类,并将结果存储在变量Y
中。
1 2 3 4 5 |
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=4) kmeans.fit(X) Y = kmeans.predict(X) |
使用 Matplotlib 可视化聚类
可视化有助于解释聚类结果。我们将使用 matplotlib.pyplot
为每个聚类创建散点图。
- 导入库:
1import matplotlib.pyplot as plt
- 绘制每个聚类:
遍历每个聚类标签,过滤属于该聚类的数据点,并使用不同的颜色和标签绘制它们。
1234colors = ['blue', 'red', 'pink', 'black']for i in range(4):plt.scatter(X[Y == i, 0], X[Y == i, 1],c=colors[i], label=f'Cluster {i}') - 显示聚类中心:
绘制聚类中心,以突出每个聚类的中心点。
123plt.scatter(kmeans.cluster_centers_[:, 0],kmeans.cluster_centers_[:, 1],s=300, c='green', label='Centroids') - 标注轴和添加图例:
通过标注轴和添加图例来增强可读性。
1234plt.xlabel('Instagram Visit Score')plt.ylabel('Spending Score')plt.legend()plt.show()
解释聚类结果
在可视化后,您将看到代表不同用户细分的明显聚类:
- Cluster 0 & 2: 消费排名较低的用户。
- Cluster 1 & 3: 消费排名较高的用户,使他们成为营销活动的首要目标。
提取特定聚类数据
为了执行目标营销,您可能希望专注于特定的聚类。以下是如何提取例如 Cluster 1 的用户:
1 2 |
cluster_1_data = data[Y == 1] print(f"Number of users in Cluster 1: {len(cluster_1_data)}") |
此代码将数据集过滤为仅包含分配到 Cluster 1 的用户,从而允许针对性的营销策略。
实际应用:目标营销
理解您的聚类有助于战略决策。例如:
- 营销预算分配: 将更多资源分配给消费得分较高的聚类。
- 个性化活动: 设计与每个聚类特定特征相契合的活动。
结论与下一步
K-Means 聚类是揭示数据中隐藏模式的强大工具。通过有效地可视化和解释这些聚类,企业可以做出明智的决策,以增强其营销策略。
在下一节课中,我们将探讨肘部法则的替代方法,进一步优化我们的最佳聚类选择方法。敬请关注!
感谢您的关注! 希望本指南已为您揭秘 Python 中 K-Means 聚类的过程。祝聚类愉快!