文章目录
0 前言
介绍层次聚类法和密度聚类。
1 层次聚类
层次聚类方法对给定的数据集进行层次的分解,直到达到某种条件为止。
1.1 凝聚的层次聚类
AGNES算法:采用自底向上的策略,首先将每个对象作为一个簇,然后这些簇根据某些准则被一步步合并,两个簇之间的距离由这两个的不同簇中距离最近的数据点的相似度来确定;聚类的过程直到所有对象满足簇的数目才停止。
1.2 分裂的层次聚类
DIANA算法:采用自顶向下的策略,首先将所有对象初始化在一个簇当中,然后根据一些原则将该簇分类,直到达到预定的簇数目或者距离超过某个阈值。
凝聚和分裂是相反的过程:
1.3 合并策略
- 最小距离:两个集合中最近的两个样本间的距离,容易形成链状结构(prime)。
- 最大距离:两个集合中最远距离的两个样本的距离,易被异常值影响(complete)。
- 平均距离:两个集合样本两两距离的平均值(average)& 平方和(ward)。
下图为采用不同合并策略的结果示意图:
2 密度聚类方法
若样本点的密度大于某个阈值时,就将该样本添加到最近的簇当中。这类算法对任意形状的聚类都有个好的效果,且对噪声数据不敏感。
2.1 DBSCAN(Density-Based Spatial Clustering of Application with Noise)
算法将簇定义为密度相连的点的最大集合,能够把高密度的区域划分为簇,并可以在有噪声的数据中发现任意形状的聚类。
所有样本都会判定是否为核心对象,这里的P不是核心对象。
基本流程是:先任意确定一个核心对象,以此为基础合并直接密度可达的对象,直到没有新的对象更新。
效果如下:
灰色的点被认为是噪声,这跟核心对象的半径选择关系很大。
2.2 密度最大值聚类
局部密度:
ρ
i
=
∑
j
χ
(
d
i
j
−
d
c
)
,
χ
(
x
)
=
{
l
1
x
<
0
0
o
t
h
e
r
w
i
s
e
\rho _i=\sum_j{\chi}\left( d_{ij}-d_c \right) , \chi (x)=\left\{ \begin{matrix}{l} 1& x<0\\ 0& \,\,\mathrm{otherwise}\\ \end{matrix} \right.
ρi=j∑χ(dij−dc),χ(x)={l10x<0otherwise
d
c
d_c
dc是截断距离,密度
ρ
i
\rho _i
ρi则是对象i的距离小于
d
c
d_c
dc的对象个数。一般是推荐选一个合适的
d
c
d_c
dc,使得平均每个邻居点数为所有点的1%~2%。
高局部密度点距离:
δ
i
=
min
j
:
ρ
j
>
ρ
i
(
d
i
j
)
\delta _i=\min_{j:\rho _j>\rho _i} \left( d_{ij} \right)
δi=j:ρj>ρimin(dij)
在密度高于对象i的所有对象中,到对象i最近的距离,即高局部密度点距离。
那些有着比较大的局部密度 ρ i \rho _i ρi和很大的高密度距离 δ i \delta _i δi的点被认为是簇的中心;高密距离 δ i \delta _i δi较大但局部密度 ρ i \rho _i ρi较小的点是异常点;确定簇中心后,其他点按照距离已知簇的中心最近进行分类。
局部密度还有其他定义: