聚类
介绍
聚类算法对大量未标注数据,按照数据的内在相似性将数据集划分为多个类别,一种无监督算法。
/N个对象,K个簇,。
五个类型
-
基于分层的聚类(hierarcal methods)
思想:对数据集进行逐层,直到某条件满足为止。
自下而上的分裂型和合并型
代表:BIRCH、CURE、CHAMELEON -
基于划分的聚类 (partitioning methods)
思想:给定K值,给出一个初始分组方法,然后反复迭代改变分组
标准:同一分组的记录越近越好,不同分组的记录越远越好
代表:k=-means, k-medoids、CLARANS -
基于密度的聚类(density-based methods)
思想:不是基于距离,而是基于密度,克服距离算法只能发现“类圆形”的缺点。只要一个区域的点的密度大于某个阈值,就把它加到与之相近的聚类中。
代表:DBSCAN、OPTICS、DENCLUE -
基于网格的聚类(grid-based methods)
思想:把数据空间划分为有限个单元的网格结构,所有处理都以单个单元为对象。
优点:处理速度很快,只与有多少个单元有关
代表:STING、CLIQUE、WaveCluster -
基于模型的聚类(model-based methods)
思想:给每个聚类假定一个模型,去找能够满足这个模型的数据集。
潜在假设:目标数据集是由一系列的概率分布所决定
两个尝试方案:统计方法和神经网络
相似度、距离计算
1. 距离
在n维空间中,由两个向量,,它们之间的距离反映两者的相似度,一般采用距离
当,我们称其为闵可夫斯基距离(Minkowski)距离
- p=1,曼哈顿距离
- p=2,欧几里得距离
-
,最大值距离
2.相似度
额外知识
- 余弦相似度的细节公式:
- pearson系数
相关系数就是把向量各自平移到原点后的夹角余弦
K-means算法
原理
每一次迭代都确定K个类别中心,将数据点归到与之距离最近的中心点所在的簇,将类别中心更新为它的簇中所有样本的均值,反复迭代,直到类别中心不再变化或小于某个阈值
存在的基本假设:
我们认为可以选到一个中心点,使得cluster中所有点到该点的距离小于到其他cluster中心的距离。但是现实可能存在一些问题本身不可分,例如两个分布有重叠的部分,通常我们会选左边的分布,即使左右两边概率相等。
计算步骤
- 选择初始K个类别中心,选取方法可以针对具体问题或者采用随机方法,初始值对收敛到全局最优解有很大关系,通常我们会试多个K值。
- 对于每个样本x,找到距离最近的cluster中心,标记为此类别
- 将类别中心更新为所有样本均值
- 重复2、3步骤,直到类别中心变化小于某阈值,或者达到最大迭代次数
优缺点
优点
- 简单、快速、经典
- 处理大数据集时,保持可伸缩性和高效率
- 当簇近似高斯分布时,它的效果较好
缺点
- 簇的平均值可被定义才能使用,不适合某些应用
- 必须事先定K值,对初值敏感
- 只能发现球状cluster,不适合非凸形状的簇,或者大小差别很大的簇
- 对噪声和孤立点数据敏感,导致均值偏离严重(K-mediods改善这个问题,修改均值为中位数)
DBSCAN算法
此为密度聚类方法,为了克服基于距离算法只能发现凸的聚类的缺点,可以发现任意形状聚类,且对噪声数据不敏感。只要样本点密度大于某个阈值,可以把样本添加到最近的簇中。
但是计算复杂度较大,需要建立空间索引来降低计算量。
一些概念
- 全名:Density-Based Spatial Clustering of Applications with Noise
- 对象的 领域:给定对象在半径内的区域
- 核心对象:给定数目m,若一个对象的领域至少包含m个对象,则称为该该对象的核心对象
- 直接密度可达:一个对象集合D,如果p时在q的领域内,而q是一个核心对象,可以说对象p从对象q出发时直接密度可达。直观的说就是两个cluster重叠了
- 密度可达:一条对象链,有一个对象p是从对象q和m密度可达的,衔接过去。
- 密度相连:对象集合D中存在一个对象O,使得对p和q是从O关于和m密度可达的,那么对象p和q关于和m密度相连
- 噪声,不包含在任何簇中的对象
- 簇:最大的密度相连对象的集合
算法步骤
- 随机选择一个点A,设置区域为半径区域,对象个数m为4,A点的区域有4个,所以A作为核心对象创建新簇,其他点标记为边缘点。
- 在边缘点上选取一个重复上面的步骤,寻找并合并核心对象直接密度可达的对象。反复上面过程,直到没有新的点可以更新簇,算法结束。形成以A为初始的一个簇,包括红点和黄点。
- 如果发现还有一些数据点未处理,再次产生一个类别来重启这个算法,遍历所有数据,若此点不是边缘点也不是中心点,标记为噪音。
优缺点
优点
- 无需确定聚类个数
- 可以发现任何形状的聚类
- 对噪声有鲁棒性,可有效处理噪声
- 只需要两个参数,对数据输入顺序不敏感
- 加快区查询
- 参数可由领域专家设置
缺点
- 边界点不完全确定性
- 维度灾难导致Euclidean距离度量失效
- 不能处理密度差异过大(密度不均匀)的聚类
- 参数选择在数据与规模不能很好理解的情况下,很难选择,选取不当容易导致聚类质量下降
密度最大值聚类DPCA
克服DBSCAN中不同类的密度差别大,领域范围难以设定的问题。
Density Peaks Clustering Algorithm基于一种假设:对于数据集,聚类中心被一些低局部密度的数据点包围,而这些点距离其他由高局部密度的点的距离都比较大
概念
-
局部密度
为截断距离,就是离对象的距离小于的对象个数 -
高局部密度点距离
局部密度高于对象的所有对象中,到对象的最近距离
聚类过程
- 计算每一个点的局部密度
- 对每一个点计算在局部密度高于对象的所有对象中,到对象的最近距离
- 对每一个点,绘制局部密度与高局部密度点距离的关系散点图
- 图中异常点为簇中心,1和10的局部密度和高局部密度距离都很大,将其作为中心
- 将其他的点分配给距离其最近的有着更高的局部密度的簇
- 26、27、28的高局部密度点距离比较大,但局部密度比较小,所以是异常点。
计算关键点
那些有着⽐较⼤的局部密度ρi 和很⼤的⾼局部密度δi的点被认为是簇的中⼼; ⽽⾼局部
密度距离δi较⼤但局部密度ρi 较⼩的点是异常点;
对于那些在决策图中⽆法⽤⾁眼判断出聚类中⼼的情形,给出了⼀种确定聚类中⼼个数的提醒:计算⼀个将ρ值和δ值综合考虑的量:
显然γ值越⼤,越有可能是聚类中⼼。
- ⼀种推荐做法是选择,使得平均每个点的邻居数为所有点的1%~2%。