1、K-means基本概念

  • 聚类(Clustering):是一种无监督学习方法,不依赖人工标注的类别,而是根据数据本身的特征,将相似的数据点自动分为若干类。

  • K均值聚类:是最常用的聚类算法之一,它的核心思想是:

    换句话说:K均值就是找K个点作为簇的代表,让每个数据点都“靠近”其中一个代表
    1. 给定一个参数 K,表示希望划分成的簇(cluster)数量;

    2. 找到每个簇的“中心点”(质心,centroid),让同一簇内的点尽可能相似,不同簇之间的点尽可能不同。

二、算法原理

K均值的目标是最小化簇内平方误差和(Within-Cluster Sum of Squares,WCSS)

[ J = \sum_{i=1}^{k} \sum_{x \in C_i} |x - \mu_i|^2 ]

其中:

  • Ci :第 i个簇

  • μi​:第 iii 个簇的中心(均值)

  • ( |x - \mu_i|^2 ):样本点与簇中心的欧式距离平方


三、算法步骤(迭代过程)

K均值算法通常按以下步骤执行:

  • 初始化质心:随机选择K个点作为初始簇中心。

  • 分配簇:将每个数据点分配给最近的簇中心。

  • 更新中心:对每个簇,重新计算其所有成员的均值,作为新的簇中心。

  • 迭代:重复步骤2和3,直到簇中心不再发生显著变化,或达到最大迭代次数。

  • ⚡ 特点:

  • 简单直观,计算速度快。

  • 可能会收敛到局部最优。

四、算法优缺点

✅ 优点

  • 实现简单,容易理解。

  • 计算效率高,适用于大规模数据。

  • 在簇较为“球状”“均匀分布”时效果好。

❌ 缺点

  • 需要事先指定簇数K。

  • 对初始中心敏感,不同初始化可能导致不同结果。

  • 只适合凸形簇,对形状复杂的数据(比如“环形”)效果不好。

  • 对噪声和异常点敏感。


五、K的选择问题

实际使用中,K值往往难以事先确定。常见方法:

  1. 肘部法则(Elbow Method)

    • 计算不同K下的簇内平方误差和(WCSS);

    • 绘制曲线,找到“拐点”位置作为合适的K。

  2. 轮廓系数(Silhouette Score)

    • 衡量样本点在本簇与最近簇之间的紧密度和分离度;

    • 取值范围[-1,1],值越大越好。
      公式:

        a i表示第 i 个向量到同一聚类内其他点的距离的平均值;b i 表示第 i 个向量到相邻聚类内所有点的平均距离的最小值。


六、应用场景

K均值聚类广泛用于:

  • 用户行为分析(例如电信用户分群)

  • 图像分割(基于像素聚类)

  • 市场细分(把客户分为不同群体)

  • 文本聚类(主题发现)

  • 异常检测(找出与簇差异过大的点)


七、简单示例

假设有二维数据点如下:
(1,2),(1,4),(1,0),(10,2),(10,4),(10,0)(1,2), (1,4), (1,0), (10,2), (10,4), (10,0)(1,2),(1,4),(1,0),(10,2),(10,4),(10,0)
若设定 K=2:

  • 初始化随机选择两个中心,比如 (1,2) 和 (10,2);

  • 将数据点分配给最近的中心(左边三点一类,右边三点一类);

  • 更新中心:左类均值 = (1,2),右类均值 = (10,2);

  • 发现中心没变,收敛,最终得到两个簇。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐