9.1 聚类任务
在无监督学习中,训练样本的标记信息是未知的,目标是通过对无标记样本的学习来揭示数据的内在性质及规律。
本章中,我们探索其中常用的“聚类"算法。它的目的是把数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇(cluster)。
聚类既能作为一个独立的过程,去探索数据之间的内在联系,也可以作为分类等其他学习任务的前驱过程.
9.2 性能度量
聚类性能度量也叫做聚类“有效性指标”(validity index)。一方面,与监督学习中的性能度量作用类似,我们需要一种评价指标来聚类算法的好坏;另一方面,如果我们能明确最终要用的指标,那么我们就可以直接将其作为优化目标。
聚类性能度量大概有两类,一类是把聚类结果与某个参考模型进行比较,称为外部指标,另一类是直接考察聚类结果而不用任何参考模型,称为内部指标。
对于数据集 D = { x 1 , x 2 , . . . , x m } D=\{x_1,x_2,...,x_m\} D={
x1,x2,...,xm},我们假设通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={
C1,C2,...,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C k ∗ } C^*=\{C^*_1,C^*_2,...,C^*_k\} C∗={
C1∗,C2∗,...,Ck∗}我们将样本两两匹配考虑
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } d = ∣ D D ∣ , D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } \begin{aligned} a=&|SS|, &SS=&\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda^*_i=\lambda^*_j,i\lt j\} \\ b=&|SD|, &SD=&\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda^*_i\ne\lambda^*_j,i\lt j\} \\ c=&|DS|, &DS=&\{(x_i,x_j)|\lambda_i\ne\lambda_j,\lambda^*_i=\lambda^*_j,i\lt j\} \\ d=&|DD|, &DD=&\{(x_i,x_j)|\lambda_i\ne\lambda_j,\lambda^*_i\ne\lambda^*_j,i\lt j\} \end{aligned} a=b=c=d=∣SS∣,∣SD∣,∣DS∣,∣DD∣,SS=SD=DS=DD={
(xi,xj)∣λi=λj,λi∗=λj∗,i<j}{
(xi,xj)∣λi=λj,λi∗̸=λj∗,i<j}{
(xi,xj)∣λi̸=λj,λi∗=λj∗,i<j}{
(xi,xj)∣λi̸=λj,λi∗̸=λj∗,i<j}
基于以上的定义,我们可以导出下列常用的外部指标:
- Jaccard 系数
J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca - FM 指数
F M I = a a + b a a + c FMI=\sqrt{\frac{a}{a+b} \frac{a}{a+c}} FMI=a+baa+ca - Rand 指数
R I = a + d m ( m − 1 ) / 2 , m = a + b + c + d RI=\frac{a+d}{m(m-1)/2},m=a+b+c+d RI=m(m−1)/2a+d,m=a+b+c+d
以上的指标均分布在[0, 1]区间,越大越好。
考虑聚类结果的簇划分 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\}