什么是K-Means聚类?

K-Means是一种经典的无监督学习算法,用于将数据划分为K个不同的簇。其核心思想是:

  • 通过迭代寻找数据点与簇中心的距离最小化
  • 最终形成具有相似特征的数据集合

🎯 应用场景:客户分群、图像压缩、异常检测等

算法实现步骤 🧮

  1. 初始化:随机选择K个初始质心
  2. 分配:将每个数据点分配到最近的质心
  3. 更新:重新计算每个簇的新质心
  4. 迭代:重复分配与更新步骤直至收敛

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()

扩展学习 📚

K_means_clustering