聚类学习笔记--kmeans

一、聚类基础

1. 定义

聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

2. 一般过程

  • 数据准备:特征标准化降维
  • 特征选择:从最初的特征中选择最有效的特征,并将其存储在向量中
  • 特征提取:通过对选择的特征进行转换形成新的突出特征
  • 聚类:基于某种距离函数进行相似度度量,获取簇
  • 聚类结果评估:分析聚类结果,如距离误差和(SSE)等

3. 度量方法

在这里插入图片描述

二、 kmeans

算法步骤

在这里插入图片描述

算法特点:

1. 初值敏感

  • K-means算法是初值敏感的,选择不同的初始值可能导致不同的簇划分规则。为了避免这种敏感性导致的最终结果异常性,可以采用初始化多套初始节点构造不同的分类规则,然后选择最优的构造规则。针对这点后面因此衍生了:二分K-Means算法、K-Means++算法、K-Means||算法、Canopy算法等。

  • 初始点选择原则:
    (1)k个点的距离尽可能远
    (2)可以对数据先进行层次聚类,得到K个簇之后,从每个类簇中选择一个点,该点可以是该类簇的中心点,或者是距离类簇中心点最近的那个点。
    在这里插入图片描述

2.需要提前确定K值

  • k 值对最终结果的影响至关重要,而它却必须要预先给定。给定合适的 k 值,需要先验知识,凭空估计很困难,或者可能导致效果很差。## k值选取
1). 手肘法

手肘法的核心指标是SSE(sum of the squared errors,误差平方和):

在这里插入图片描述

  • 其中,Ci是第i个簇,p是Ci中的样本点,mi是Ci的质心(Ci中所有样本的均值),SSE是所有样本的聚类误差,代表了聚类效果的好坏。
  • 手肘法的核心思想是:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。
  • 并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数
    在这里插入图片描述
2). 轮廓系数法

该方法的核心指标是轮廓系数(Silhouette Coefficient),某个样本点Xi的轮廓系数定义如下:
在这里插入图片描述

  • 其中,a是Xi与同簇的其他样本的平均距离,称为凝聚度,b是Xi与最近簇中所有样本的平均距离,称为分离度。而最近簇的定义是
    在这里插入图片描述
  • 其中p是某个簇Ck中的样本。事实上,简单点讲,就是用Xi到某个簇所有样本平均距离作为衡量该点到该簇的距离后,选择离Xi最近的一个簇作为最近簇。
  • 求出所有样本的轮廓系数后再求平均值就得到了平均轮廓系数。平均轮廓系数的取值范围为[-1,1],且簇内样本的距离越近,簇间样本距离越远,平均轮廓系数越大,聚类效果越好。那么,很自然地,平均轮廓系数最大的k便是最佳聚类数。
    在这里插入图片描述
3). Calinski-Harabaz指数

Calinski-Harabaz的分数S被定义为组间离散与组内离散的比率,该分值越大说明聚类效果越好
在这里插入图片描述

  • 其中 Bk 是组间离散矩阵, Wk 是组内离散矩阵:
    在这里插入图片描述
  • N 为数据中的点数,Cq 为 cluster (簇) q 中的点集, cq 为 cluster(簇) q 的中心, ce为 E 的中心, nq 为 cluster(簇) q 中的点数。
  • 也就是说,类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高。
  • 得分计算很快
4). Davies-Bouldin 指数
  • Davies-Bouldin 表示集群之间的平均“相似度”,其定义为:
    在这里插入图片描述
  • Si表示聚类i中每个点之间的平均距离,dij表示聚类i,j的质心之间的距离,Rij定义相似性为:

在这里插入图片描述

  • 其中相似度是将集群之间的距离与集群本身的大小进行比较的度量。零是可能的最低分。接近零的值表示更好的分区。
5). 其他
  • Rand index、Mutual Information based scores、Homogeneity, completeness and V-measure、Fowlkes-Mallows scores、Fowlkes-Mallows scores等方法需要真实值。

3. 异常点敏感

  • K-means算法在迭代的过程中使用所有点的均值作为新的质点(中心点),如果簇中存在异常点,将导致均值偏差比较严重。 比如一个簇中有2、4、6、8、100五个数据,那么新的质点为24,显然这个质点离绝大多数点都比较远;在当前情况下,使用中位数6可能比使用均值的想法更好,使用中位数的聚类方式叫做K-Mediods聚类(K中值聚类)。

优缺点

1. 优点

  • 容易理解,聚类效果不错,虽然是局部最优, 但往往局部最优就够了;
  • 处理大数据集的时候,该算法可以保证较好的伸缩性;
  • 当簇近似高斯分布的时候,效果非常不错;
  • 算法复杂度低。

2. 缺点

  • K 值需要人为设定,不同 K 值得到的结果不一样;
  • 对初始的簇中心敏感,不同选取方式会得到不同结果;
  • 只能得到局部最优;
  • 对异常值敏感;
  • 样本只能归为一类,不适合多分类任务;
  • 不适合太离散的分类、样本类别不平衡的分类、非凸形状的分类。

三、k-means++

  • k-means++是针对k-means中初始质心点选取的优化算法。
  • 该算法的流程和k-means类似,改变的地方只有初始质心的选取,该部分的算法流程如下:
    在这里插入图片描述

四、DBSCAN

DBSCAN是一种基于密度聚类的算法。该算法的最大优点是可以将非球形簇实现恰到好处的聚类
在这里插入图片描述

算法步骤

在这里插入图片描述
例如:
在这里插入图片描述

算法特点

  • 需要为算法指定eps和MinPts参数,这对分析人员是一个很大的挑战;
  • 更适用于凹形状的分类
  • DBSCAN聚类算法对参数eps和MinPts的设置是非常敏感的,如果指定不当,该算法将造成聚类质量的下降。
  • 参考scikit中的函数

参考链接

https://zhuanlan.zhihu.com/p/104355127
https://blog.csdn.net/qq_15738501/article/details/79036255
https://zhuanlan.zhihu.com/p/47812841

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值