什么是K-Means聚类?
K-Means是一种经典的无监督学习算法,用于将数据划分为K个不同的簇。其核心思想是:
- 通过迭代寻找数据点与簇中心的距离最小化
- 最终形成具有相似特征的数据集合
🎯 应用场景:客户分群、图像压缩、异常检测等
算法实现步骤 🧮
- 初始化:随机选择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)
kmeans.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', label='质心')
plt.legend()
plt.show()