聚类评估指标
聚类算法往往被大家使用的时候会忽略评估标准,这篇文章主要介绍聚类算法的评估方法。
聚类有效性指标就是用于衡量聚类的效果的指标。
聚类指标分为以下两类:
- 外部指标:主要是使用的聚类模型和其他聚类模型的对比
- 内部指标:单纯衡量使用模型的好坏。
外部指标
给定数据集合D=x1,....,xn,使用某个参考模型的簇分为C∗=∣C1∗....CK∗∣,若算法给出的簇划分为C=∣C1,...,CK∣
a:同事包含于C∗和C的样本对数
b:包含于C,但是不属于C∗的样本对数
c:不包含于C,但是属于C∗的样本对数
d:不包含于C,也不属于C∗的样本对数
Jaccard系数
JC=a+b+ca
FM指数
FMI=a+ba∗a+ca
类似的还有Rand指数和ARI指数,可以在需要的时候了解。
内部指数
给定数据集合D=x1,....,xN,簇划分为C=∣C1,...,CK∣,
avg(Ck)=∣CK∣(∣Ck∣+1)∣2∑distane(xi,xj)
diam(CK)=max distane(xi,xj)
dmin(CK,Ci)=min distane(xi,xj)
decn(CK,Ci)=max distane(μi,μj)
distace(xi,xj)表示两点之间的距离,μ表示簇中心点的距离
- avg(Ck):簇内任意两点之间的距离
- diam(CK):簇内距离最远的两个点的距离
- dmin(CK,Ci):两个簇之间的最近距离
- decn(CK,Ci):两个簇之间中心点的距离
DB指数
DBI=K1k=1∑Kmax (decn(Ck,Ci)avg(CK)+avg(Ci))
DBI越小越好。
dunn指数
DI=maxidiam(Ci)mink!=idmin(Ck,Ci)
他是刻画任意两个簇的最小值, 和任意簇内距离最远两点的距离最大值。DI越大越好。
常用聚类方式及其特点
硬聚类
所谓的硬聚类就是指聚类算法中每个点必须属于一个簇,这里典型的算法有DBSCAN和K-means.
其中DBSCAN需要执行一个簇中最少有几个节点,以及半径。而这个半径尤其难以启发式的指定。所以进一步会有HDBSCAN,HDBSCAN的典型特点是不需要执行半径,HDBSCAN能够学出不同密度的簇。
K-means也比较简单,超参数是K,也就是你想要聚出多少个簇。
软聚类
软聚类是指一个节点可以同时属于多个簇,在某些场景下也是比较好用的算法。典型的算法是高斯混合模型。