1 DBSCAN算法概况
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的、对噪声鲁棒的空间聚类方法)是一种基于密度的经典聚类算法
2 DBSCAN算法细节
- 遍历所有样本,寻找关键的核心点(邻域内样本数>=MinPoints)
- 核心点及其邻域内的样本(包括其他核心点)形成了临时聚类簇
- 当核心点A属于核心点B的临时聚类簇时,合并两处临时聚类簇
- 重复以上过程,直至找不到新的可合并临时聚类簇
分类目录归档:常见聚类算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的、对噪声鲁棒的空间聚类方法)是一种基于密度的经典聚类算法
本文中大部分算法都可通过R语言的latend包复现
轨迹分组算法(Group-based trajectory model,GBTM)
谱聚类(spectral clustering):一种基于图的聚类算法
核心思想:将数据转化为图的形式,距离近的数据间对应的边权重高,距离远的数据间对应的边权重低。之后通过切图的方式,使得不同子图间的边权值和尽可能低,子图内部的边权值和尽可能高,从而达到聚类的目的
核心思想:把每个样本看作一个节点,然后构建任意两点$(x_i,x_j)$间权重边$w_{ij}$
方法1:$\epsilon-
Chinese Whispers(简称CW)算法,是一种无监督的图聚类算法
CW算法运行效率高,但结果存在不确定性,常用于人脸聚类或文本聚类
以人脸聚类为例,先进行图的初始化(构建无向加权图):每个人脸图片为一个节点,不同节点通过计算相似度,然后连接相似度超出指定阈值的节点,并以相似度作为边的权重
算法步骤
- 对于N个人脸样本,每个样本节点先单独成簇(自成一类)
- 遍历所有节点,根据每个节点的邻节点所属类别,计算权重累加
- 修正节点类别,选择最终累加权重最高的类别
- 如果有多个权重最高的类别,
K均值算法(即,k-means clustering),是一种无监督聚类算法
K-means算法属于NP-hard问题,不过存在高效的启发式算法,能快速收敛到一个局部最优解
算法步骤
- 对于N个样本,随机选择其中K个,作为最初的质心
- 遍历所有样本,选择最新的质心进行归类,形成K个簇
- 根据每个簇的样本重新计算质心(比如求均值)
- 重复步骤2-3,直到每个簇质心基本不再变化或达到最大迭代次数
算法的收敛过程如下所示:
(图源来自https