K-means聚类——无监督学习算法

        K-means聚类是一种常见的无监督学习算法,主要用于将数据集划分成若干个簇(cluster),使得每个簇内的数据点尽可能相似,而簇间的数据点尽可能不同。

应用场景

K-means聚类应用广泛,尤其适合以下场景:

  1. 客户分群:根据用户行为特征(如消费习惯、购买频率)将客户划分为不同组别。

  2. 图像分割:将图像像素根据颜色或纹理分为若干区域。

  3. 文档分类:将文本向量化后(如TF-IDF表示)进行聚类。

  4. 生物信息学:分析基因表达数据或其他生物数据模式。

算法的核心思想

目标函数:K-means算法通过最小化簇内数据点到簇中心的总距离(即误差平方和)来进行优化。数学公式为:

其中:

  • Ci:第 i个簇

  • μi:第 i 个簇的中心(即该簇所有数据点的均值)

通过不断迭代更新簇中心和重新分配数据点来最小化目标函数 J。

K-means 聚类算法的步骤

1、初始化中心点(或称质心)

  • 方法1:随机初始化
    随机从数据集中选择 KKK 个数据点作为初始簇中心。

  • 方法2:K-means++初始化
    选择第一个簇中心后,后续簇中心的选择倾向于与当前中心距离较远的点,确保初始簇中心尽可能分散。

2、分配数据点:将数据集中的每个数据点分配到距离其最近的簇中心所代表的簇。常用的距离度量是欧氏距离。(或其他距离公式,本文使用欧氏距离为例)

其中:

  • D:数据点的维度
  • x_{j,d}:数据点 x_j 的第 d 维特征
  • \mu_{i,d}:簇中心 μi​ 的第 d 维特征

3、更新簇中心:对于每个簇,计算簇内所有点的均值,新的均值将成为该簇的中心。

4、重复步骤2和步骤3:重复分配数据点和更新簇中心的步骤,直到簇中心不再发生显著变化(即收敛)或达到设定的最大迭代次数

优缺点

优点:

1、简单易实现

2、结果可解释性强:输出的簇中心和分配结果容易理解和可视化。

缺点:

1、依赖初始中心:不同的初始簇中心可能导致不同的聚类结果(局部最优解)

2、K值需要预先设定:K值的选择对结果影响较大,通常需要使用肘部法则或轮廓系数等方法。

3、对异常值敏感:离群点可能导致簇中心偏移,影响聚类效果。

4、簇形状假设:K-means假设簇是球形的,对复杂形状的数据(比如环形或不规则簇)效果较差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值