无监督学习之聚类评估

聚类评估指标

聚类算法往往被大家使用的时候会忽略评估标准,这篇文章主要介绍聚类算法的评估方法。

聚类有效性指标就是用于衡量聚类的效果的指标。
聚类指标分为以下两类:

  1. 外部指标:主要是使用的聚类模型和其他聚类模型的对比
  2. 内部指标:单纯衡量使用模型的好坏。

外部指标

给定数据集合D=x1,....,xnD={\vec{x_1, ....,x_n}},使用某个参考模型的簇分为C=C1....CKC^*=|C^*_1....C^*_K|,若算法给出的簇划分为C=C1,...,CKC=|C_1, ..., C_K|

a:同事包含于CC^*CC的样本对数
b:包含于CC,但是不属于CC^*的样本对数
c:不包含于CC,但是属于CC^*的样本对数
d:不包含于CC,也不属于CC^*的样本对数

Jaccard系数

JC=aa+b+cJC=\frac{a}{a + b + c}

FM指数

FMI=aa+baa+cFMI=\sqrt{\frac{a}{a+b} * \frac{a}{a+c}}

类似的还有Rand指数和ARI指数,可以在需要的时候了解。

内部指数

给定数据集合D=x1,....,xND={\vec{x_1, ....,x_N}},簇划分为C=C1,...,CKC=|C_1, ..., C_K|,

avg(Ck)=2CK(Ck+1)distane(xi,xj)avg(C_k)=\frac{2}{|C_K|(|C_k| + 1)|}\sum distane(x_i, x_j)

diam(CK)=max distane(xi,xj)diam(C_K)=max\ distane(x_i, x_j)

dmin(CK,Ci)=min distane(xi,xj)dmin(C_K, C_i)=min\ distane(x_i, x_j)

decn(CK,Ci)=max distane(μi,μj)decn(C_K, C_i)=max\ distane(\mu_i, \mu_j)

distace(xi,xj)distace(x_i, x_j)表示两点之间的距离,μ\mu表示簇中心点的距离

  1. avg(Ck)avg(C_k):簇内任意两点之间的距离
  2. diam(CK)diam(C_K):簇内距离最远的两个点的距离
  3. dmin(CK,Ci)dmin(C_K, C_i):两个簇之间的最近距离
  4. decn(CK,Ci)decn(C_K, C_i):两个簇之间中心点的距离

DB指数

DBI=1Kk=1Kmax (avg(CK)+avg(Ci)decn(Ck,Ci))DBI=\frac{1}{K}\sum_{k=1}^{K}max\ (\frac{avg(C_K) + avg(C_i)}{decn(C_k,C_i)})

DBI越小越好。

dunn指数

DI=mink!=idmin(Ck,Ci)maxidiam(Ci)DI=\frac{min_{k!=i}dmin(C_k, C_i)}{max_idiam(C_i)}

他是刻画任意两个簇的最小值, 和任意簇内距离最远两点的距离最大值。DI越大越好。

常用聚类方式及其特点

硬聚类

所谓的硬聚类就是指聚类算法中每个点必须属于一个簇,这里典型的算法有DBSCAN和K-means.
其中DBSCAN需要执行一个簇中最少有几个节点,以及半径。而这个半径尤其难以启发式的指定。所以进一步会有HDBSCAN,HDBSCAN的典型特点是不需要执行半径,HDBSCAN能够学出不同密度的簇。
K-means也比较简单,超参数是K,也就是你想要聚出多少个簇。

软聚类

软聚类是指一个节点可以同时属于多个簇,在某些场景下也是比较好用的算法。典型的算法是高斯混合模型

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×