非监督学习之k均值聚类


聚类分析在模式识别、机器学习以及图像分割领域有着重要作用。k均值聚类由于算法的时间复杂度比较低,从而广泛应用于各类数据信息挖掘业务中

聚类的概念

聚类指的是将物理或者抽象的对象集合分成由相似对象组成的多个类的过程

这个过程中的关键就是如何度量对象间的相似性

较为常见的指标由距离、密度等。我们把聚类完成之后的一组数据对象的集合称为簇,同一个簇内的对象相似性高,而不同的则反之,并且非监督学习没有预先定义好的分类

簇的划分

直观上我们会把样本点散落在坐标系中,然后根据相似性放一起,这样自然就能形成一个示意图

如果在某一固定范围内,样本较为集中,其实就说明这一簇中的对象特征相似,而且有别于其他簇,例如扑克牌中的四种花色

但是当簇的特征不是那么明显的时候,我们没办法一眼就看出簇的个数,这时候就需要一个算法来划分,也就是k均值聚类算法

k均值聚类算法的核心

首先我们介绍k均值聚类算法的工作流程

  1. 选取k个点,作为k个簇的中心,这个k是认为设定的参数
  2. 将数据对象分配到距离自己最近的簇中

假设样本集中由l个样本,每个样本都有n个特征,用 x i x_i xi表示,假设我们要把这些样本分为k个簇 S = { S 1 , S 2 , … , S k } S=\{S_1,S_2,\dots,S_k \} S={S1,S2,,Sk}

那么最优的分配方案就是优化下面这个目标函数的解

min ⁡ S ∑ i = 1 k ∑ x ∈ S l ∣ ∣ x − μ i ∣ ∣ 2 \min_S \sum_{i=1}^{k}\sum_{x\in S_l}{||x-\mu_i||}^2 minSi=1kxSl∣∣xμi∣∣2

简单理解就是所有聚类情况中,每个点到各自聚类中心的长度平方和最小时,即为最优分配方案

其中 S l S_l Sl表示第l个簇,S是由所有簇构成的集合, μ i \mu_i μi表示每个簇中心的均值向量,也称之为质心

这个公式的组合优化问题是一个NP难题,通常也难以求得其最优解,只能求得近似解,在实际实现过程中通常采用循环迭代,逐步收敛到局部最优解

当所有的点都被划分到某个簇中时,要再对各个簇中心进行更新,要根据每个聚类对象的均值,计算每个对象到簇中心的距离最小值,直到满足要求才停止计算,这个要求一般是函数收敛或者迭代一定次数

在整个算法过程中有两个问题需要关注

初始簇中心

常见的选取初始簇中心的方法是随机挑选k个点,但这样的质量其实很差

一般都使用多次运行调优,每次使用一组不同的随机初始簇中心,最后从中选取具有最小平方误差的簇集,这种算法简单,但是效果不好确定,主要取决于数据集和簇的个数,还有就是可以根据历史经验自行决定

确定对象的距离

根据问题场景不同,度量的方式也不同,在欧氏空间中就使用欧氏距离,对于非欧氏进空间,可以选择Jaccard距离,Cosine距离或Edit距离

k均值聚类的优缺点

  1. k值需要事先给出,k值对结果的影响比较大,而且随着个数的增加,会让误差函数趋近于0,因为每一个样本点都会是一个簇,但这样其实就跟没分类一样,通常我们可以引入结构风险,对模型的复杂度进行惩罚
  2. 聚类质量对初始簇中心的选取有很强的依赖性,
  3. 对噪音数据比较敏感,聚类结果很容易受影响
  4. 对于欧氏距离,只能发现球形簇
  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖林_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值