K-means是一种经典的无监督聚类算法,广泛应用于数据分组场景。以下是快速入门指南:
🧩 算法原理简述
- 初始化:随机选择K个中心点
- 分配:将每个数据点分配到最近的中心点
- 更新:重新计算中心点位置
- 迭代:重复分配与更新步骤直至收敛
💡 通过最小化数据点与所属簇中心的平方距离之和,实现数据的自动分组
💻 实现步骤(Python示例)
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 示例数据
X = [[1, 2], [1, 4], [1, 0],
[4, 2], [4, 4], [4, 0]]
# 创建模型并训练
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red', marker='X')
plt.title("K-means Clustering")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.show()
📝 代码解析
- 使用
sklearn
库简化实现 n_clusters
参数控制簇的数量- 可视化可直观展示聚类效果
🌍 应用场景
- 客户细分
- 图像压缩
- 推荐系统
📚 想深入了解算法数学推导?可参考机器学习基础教程进一步学习
⚠️ 注意事项
- 数据需预先标准化
- 选择合适的K值(可使用肘部法则)
- 对初始中心点敏感,建议多次运行取最优解