You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

246 lines
7.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 聚类模型性能评估指标
聚类的性能度量大致分为两类:一类是将聚类结果与某个参考模型作为参照进行比较,也就是所谓的**外部指标**;另一类是则是直接度量聚类的性能而不使用参考模型进行比较,也就是**内部指标**。
##外部指标
**外部指标通常使用 Jaccard Coefficient(JC系数)、Fowlkes and Mallows Index(FM指数)以及 Rand indexRand指数。**
想要计算上述指标来度量聚类的性能,首先需要计算出$$a$$$$c$$$$d$$$$e$$。假设数据集$$E=\{x_1,x_2,...,x_m\}$$。通过聚类模型给出的簇划分为$$C=\{C_1,C_2,...C_k\}$$,参考模型给出的簇划分为$$D=\{D_1,D_2,...D_s\}$$。$$\lambda$$与$$\lambda^*$$分别表示$$C$$与$$D$$对应的簇标记,则有:
<center>
$$
a=|\{(x_i, x_j)|\lambda_i=\lambda_j, \lambda^*_i=\lambda^*_j,i < j\}|
$$
</center>
<br>
<center>
$$
b=|\{(x_i, x_j)|\lambda_i=\lambda_j, \lambda^*_i\neq\lambda^*_j, i < j\}|
$$
</center>
<br>
<center>
$$
c=|\{(x_i, x_j)|\lambda_i\neq\lambda_j, \lambda^*_i=\lambda^*_j, i < j\}|
$$
</center>
<br>
<center>
$$
d=|\{(x_i, x_j)|\lambda_i\neq\lambda_j, \lambda^*_i\neq\lambda^*_j, i < j\}|
$$
</center>
<br>
举个例子,参考模型给出的簇与聚类模型给出的簇划分如下:
| 编号 | 参考簇 | 聚类簇 |
| :-: | :-: | :-: |
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 0 | 1 |
| 4 | 1 | 1 |
| 5 | 1 | 2 |
| 6 | 1 | 2 |
那么满足$$a$$的样本对为$$(1, 2)$$(**因为$$1$$号样本与$$2$$号样本的参考簇都为$$0$$,聚类簇都为$$0$$**)$$(5, 6)$$(**因为$$5$$号样本与$$6$$号样本的参考簇都为$$1$$,聚类簇都为$$2$$**)。总共有$$2$$个样本对满足$$a$$,因此$$a=2$$。
满足$$b$$的样本对为$$(3, 4)$$(**因为$$3$$号样本与$$4$$号样本的参考簇不同,但聚类簇都为$$1$$**)。总共有$$1$$个样本对满足$$b$$,因此$$b=1$$。
那么满足$$c$$的样本对为$$(1, 3)$$(**因为$$1$$号样本与$$3$$号样本的聚类簇不同,但参考簇都为$$0$$**)$$(2, 3)$$(**因为$$2$$号样本与$$3$$号样本的聚类簇不同,但参考簇都为$$0$$**)$$(4, 5)$$(**因为$$4$$号样本与$$5$$号样本的聚类簇不同,但参考簇都为$$1$$**)$$(4, 6)$$(**因为$$4$$号样本与$$6$$号样本的聚类簇不同,但参考簇都为$$1$$**)。总共有$$4$$个样本对满足$$c$$,因此$$c=4$$。
满足$$d$$的样本对为$$(1, 4)$$(**因为$$1$$号样本与$$4$$号样本的参考簇不同,聚类簇也不同**)$$(1, 5)$$(**因为$$1$$号样本与$$5$$号样本的参考簇不同,聚类簇也不同**)$$(1, 6)$$(**因为$$1$$号样本与$$6$$号样本的参考簇不同,聚类簇也不同**)$$(2, 4)$$(**因为$$2$$号样本与$$4$$号样本的参考簇不同,聚类簇也不同**)$$(2, 5)$$(**因为$$2$$号样本与$$5$$号样本的参考簇不同,聚类簇也不同**)$$(2, 6)$$(**因为$$2$$号样本与$$6$$号样本的参考簇不同,聚类簇也不同**)$$(3, 5)$$(**因为$$3$$号样本与$$5$$号样本的参考簇不同,聚类簇也不同**)$$(3, 6)$$(**因为$$3$$号样本与$$6$$号样本的参考簇不同,聚类簇也不同**)。总共有$$8$$个样本对满足$$d$$,因此$$d=8$$。
###JC系数
**JC系数**根据上面所提到的$$a$$$$b$$$$c$$来计算,并且值域为$$[0, 1]$$,值越大说明聚类性能越好,公式如下:
<center>
$$
JC=\frac{a}{a+b+c}
$$
</center>
<br>
因此刚刚的例子中,$$JC=\frac{2}{2+1+4}=\frac{2}{7}$$
###FM指数
**FM指数**根据上面所提到的$$a$$$$b$$$$c$$来计算,并且值域为$$[0, 1]$$,值越大说明聚类性能越好,公式如下:
<center>
$$
FMI=\sqrt{\frac{a}{a+b}*\frac{a}{a+c}}
$$
</center>
<br>
因此刚刚的例子中,$$FMI=\sqrt{\frac{2}{2+1}*\frac{2}{2+4}}=\sqrt{\frac{4}{18}}$$
###Rand指数
**Rand指数**根据上面所提到的$$a$$和$$d$$来计算,并且值域为$$[0, 1]$$,值越大说明聚类性能越好,假设$$m$$为样本数量,公式如下:
<center>
$$
RandI=\frac{2(a+d)}{m(m-1)}
$$
</center>
<br>
因此刚刚的例子中,$$RandI=\frac{2*(2+8)}{6*(6-1)}=\frac{2}{3}$$。
##内部指标
**内部指标通常使用 Davies-Bouldin Index (DB指数)以及 Dunn IndexDunn指数。**
#####DB指数
**DB指数**又称 DBI ,计算公式如下:
<center>
$$
DBI=\frac{1}{k}\sum_{i=1}^kmax(\frac{avg(C_i)+avg(C_j)}{d_c(\mu_i,\mu_j)}), i \neq j
$$
</center>
<br>
公式中的表达式其实很好理解,其中$$k$$代表聚类有多少个簇,$$\mu_i$$代表第$$i$$个簇的中心点,$$avg(C_i)$$代表$$C_i$$第$$i$$个簇中所有数据与第$$i$$个簇的中心点的平均距离。$$d_c(\mu_i, \mu_j)$$代表第$$i$$个簇的中心点与第$$j$$个簇的中心点的距离。
举个例子,现在有$$6$$条西瓜数据$$\{x_1,x_2,...,x_6\}$$,这些数据已经聚类成了$$2$$个簇。
| 编号 | 体积 | 重量 | 簇 |
| :-: | :-: | :-: | :-: |
| 1 | 3 | 4 | 1 |
| 2 | 6 | 9 | 2 |
| 3 | 2 | 3 | 1 |
| 4 | 3 | 4 | 1 |
| 5 | 7 | 10 | 2 |
| 6 | 8 | 11 | 2 |
从表格可以看出:
<center>
$$
k=2
$$
</center>
<br>
<center>
$$
\mu_1=(\frac{(3+2+3)}{3}, \frac{(4+3+4)}{3})=(2.67,3.67)
$$
</center>
<br>
<center>
$$
\mu_2=(\frac{(6+7+8)}{3}, \frac{(9+10+11)}{3})=(7,10)
$$
</center>
<br>
<center>
$$
d_c(\mu_1, \mu_2)=\sqrt{(2.67-7)^2+(3.67-10)^2}=7.67391
$$
</center>
<br>
<center>
$$
avg(C_1)=(\sqrt{(3-2.67)^2+(4-3.67)^2}+\sqrt{(2-2.67)^2+(3-3.67)^2}+\sqrt{(3-2.67)^2+(4-3.67)^2})/3=0.628539
$$
</center>
<br>
<center>
$$
avg(C_2)=(\sqrt{(6-7)^2+(9-10)^2}+\sqrt{(7-7)^2+(10-10)^2}+\sqrt{(8-7)^2+(11-10)^2})/3=0.94281
$$
</center>
<br>
因此有:
<center>
$$
DBI=\frac{1}{k}\sum_{i=1}^kmax(\frac{avg(C_i)+avg(C_j)}{d_c(\mu_i,\mu_j)})=0.204765
$$
</center>
<br>
**DB指数越小就越就意味着簇内距离越小同时簇间距离越大也就是说DB指数越小越好。**
###Dunn指数
**Dunn指数**又称DI计算公式如下
<center>
$$
DI=min_{1\leq i\leq k}\{min_{i\neq j}(\frac{d_min(C_i,C_j)}{max_{1\leq l\leq k}diam(C_l)})\}
$$
</center>
<br>
公式中的表达式其实很好理解,其中$$k$$代表聚类有多少个簇,$$d_{min}(C_i,C_j)$$代表第$$i$$个簇中的样本与第$$j$$个簇中的样本之间的最短距离,$$diam(C_l)$$代表第$$l$$个簇中相距最远的样本之间的距离。
还是这个例子,现在有`6`条西瓜数据$$\{x_1,x_2,...,x_6\}$$,这些数据已经聚类成了 2 个簇。
| 编号 | 体积 | 重量 | 簇 |
| :-: | :-: | :-: | :-: |
| 1 | 3 | 4 | 1 |
| 2 | 6 | 9 | 2 |
| 3 | 2 | 3 | 1 |
| 4 | 3 | 4 | 1 |
| 5 | 7 | 10 | 2 |
| 6 | 8 | 11 | 2 |
从表格可以看出:
<center>
$$
k=2
$$
</center>
<br>
<center>
$$
d_{min}(C_1,C_2)=\sqrt{(3-6)^2+(4-9)^2}=5.831
$$
</center>
<br>
<center>
$$
diam(C_1)=\sqrt{(3-2)^2+(4-2)^2}=1.414
$$
</center>
<br>
<center>
$$
diam(C_2)=\sqrt{(6-8)^2+(9-11)^2}=2.828
$$
</center>
<br>
因此有:
<center>
$$
DI=min_{1\leq i\leq k}\{min_{i\neq j}(\frac{d_min(C_i,C_j)}{max_{1\leq l\leq k}diam(C_l)})\}=2.061553
$$
</center>
<br>
**Dunn指数越大意味着簇内距离越小同时簇间距离越大也就是说Dunn指数越大越好。**