机器学习之K-均值算法

K-means(K-均值)聚类算法一种无监督学习算法。它的主要目标是将一组未标记的数据点划分为𝐾个簇(cluster),使得每个数据点都属于离它最近的簇中心(centroid),并且每个簇内部的数据点尽可能相似,而簇与簇之间的数据点尽可能不相似 
欧几里得距离(Euclidean Distance),也称欧氏距离,是在多维空间中衡量两点之间直线距离的方法。它基于勾股定理,是我们在平面几何中最直观、最常用的距离概念的扩展。 
6C44223E1197E91CC6EAE1568180C3AD

 注意与曼哈顿距离Manhattan Distance, 差的绝对值之和)区别。

1. K-means 算法的工作流程

K-means 算法是一个迭代过程,它交替进行两个主要步骤:分配(Assignment)更新(Update) 
  1. 初始化
    • 首先,需要预先确定聚类的数量𝐾
    • 然后,随机选择𝐾个数据点作为初始的簇中心(也称质心)。
  2. 分配数据点(Expectation 步骤):
    • 计算每个数据点到所有𝐾个簇中心的距离(通常使用欧几里得距离)。
    • 将每个数据点分配给距离它最近的簇中心所代表的簇。
  3. 更新簇中心(Maximization 步骤):
    • 重新计算每个簇的中心。新的簇中心是该簇中所有数据点的平均值(质心)
  4. 重复迭代
    • 重复执行“分配数据点”和“更新簇中心”这两个步骤,直到满足以下任一停止条件:
      • 簇中心的位置不再发生显著变化。
      • 数据点不再重新分配到新的簇。
      • 达到预设的最大迭代次数。

2. K-means 的优缺点

优点
  • 简单且高效:算法实现起来非常简单,并且计算效率高,尤其适用于处理大规模数据集。
  • 易于理解和解释:其原理直观易懂,结果也容易解释。
缺点
  • 需要预先确定𝐾值:用户必须提前指定簇的数量𝐾值,而这个值的选择往往没有明确的指导。不恰当的𝐾值会导致糟糕的聚类结果。
  • 对初始簇中心敏感:K-means 的结果依赖于初始簇中心的选择。不同的初始位置可能导致不同的最终聚类结果,甚至陷入局部最优。
  • 对异常值敏感:由于簇中心是均值,少数异常值会显著影响簇中心的位置,从而扭曲聚类结果。
  • 难以处理非凸形状的簇:K-means 倾向于发现球形或类似球形的簇。对于月牙形、环形等非凸形状的簇,它的效果较差。
  • 对数据尺度敏感:如果数据特征的尺度差异很大,欧几里得距离会偏向于尺度大的特征。因此,通常需要对数据进行归一化处理

3. K-means 的应用场景

  • 客户细分:根据购买行为、消费习惯等将客户分成不同群体,以便进行精准营销。
  • 图像分割:将图像中的像素点根据颜色或纹理相似性进行聚类,从而实现图像分割。
  • 文档聚类:将相似主题的文档分组,有助于信息检索和整理。
  • 异常检测:将正常数据点聚类后,远离任何簇中心的数据点可以被视为异常值。
  • 推荐系统:通过对用户或物品进行聚类,可以为用户推荐同一簇内的物品。

参考资料:

  1. 《机器学习》周志华
  2. K-means 笔记(三)数学原理
  3. K-means 怎么选 K?
  4. 【机器学习】K-means
  5. 明可夫斯基距离

 

 

posted @ 2025-10-30 09:12  PKICA  阅读(12)  评论(0)    收藏  举报