聚类指标
外部评价指标
Adjusted Rand Index(兰德指标)
为使随机聚类结果的ARI接近0,提出调整兰德系数
Adjusted Mutual Information(互信息)
信息熵:当随机变量Y的取值确定,即p(y_1)=1,p(y_{i \neq 1}=0),熵为0。当随机变量的取值不确定,例如在N种取值上的均匀分布,H(Y)=−∑N1Nlog 1N=log N
条件熵:在给定条件X下,Y的分布的不确定性
聚类结果C和参考类别C∗之间的互信息定义为
当C与
同ARI相似,AMI定义为
尽管由于H(C|C∗)≥0,H(C∗|C)≥0,因此
AMI的取值范围为[0,1],对两种独立的聚类值为0,两种完全相同的聚类值为1。
homogeneity,completeness and V-measure
homogeneity(同质性):一个簇只包含一个类别的样本
c∗1 | c∗2 | sum |
---|---|---|
c1 | 2 | |
c2 | 3 | |
c3 | 6 | |
c4 | 1 | |
sum | 6 | 6 |
H(C∗)=log 2,H(C∗|C)=0,h=1
c∗1 | c∗2 | sum |
---|---|---|
c1 | 1 | 2 |
c2 | 2 | 4 |
c3 | 3 | 6 |
c4 | 4 | 8 |
sum | 10 | 20 |
H(C∗)=13log 3+23log 32,H(C∗|C)=13log 3+23log 32,h=0
completeness(完整性):一个类别只在一个簇中
例如对于聚类结果
c∗1 | c∗2 | c∗3 | c∗4 | sum |
---|---|---|---|---|
c1 | 1 | 3 | 2 | |
c2 | 6 | |||
sum | 1 | 3 | 6 | 2 |
H(C)=log 2,H(C|C∗)=0,c=1
c∗1 | c∗2 | c∗3 | c∗4 | sum |
---|---|---|---|---|
c1 | 1 | 2 | 3 | 4 |
c2 | 2 | 4 | 6 | 8 |
sum | 3 | 6 | 9 | 12 |
H(C)=13log 3+23log 32,H(C|C∗)=13log 3+23log 32,c=0
V-measure:均一性和完整性的调和平均
Fowlkes-Mallows score
其中
- TP为在聚类结果中属于同一簇,在标签中也属于同一类的样本对数目
- FP为在聚类结果中不属于同一簇,在标签中属于同一簇的样本对数目
- FN为在聚类结果中属于同一簇,在标签中不属于同一簇的样本对数目
FMI 为精度和召回率的几何均值
内部评价指标
Silhouette coefficient:轮廓系数
一个样本的轮廓系数定义为:
- a:The mean distance between a sample and all other points in the same
class. - b:The mean distance between a sample and all other points in the next nearest cluster.
s接近1表示该样本匹配该类非常好,s接近-1表示该样本被聚类到相邻类中更合适,s接近0表示样本在两个类的交集处。
聚类的轮廓系数定义为所有样本轮廓系数的均值。s¯>0.5表示聚类合适,s¯<0.2表示数据不存在聚类特征
Calinski-Harabaz Index:离差平方和
类内散度
类间散度
其中Nk代表第k个簇的样本数目。
则CH索引为
CH索引的优点在于计算快,它倾向于得到大小均匀的类。
吸引力传播
motivation
算法同时考虑所有样本点作为可能的聚类中心,可以看作是解决了如何选取ci使得能量函数
最小的一个方法。其中s(i,ci)是样本i与它的聚类中心的相似度(例如:负的欧氏距离)。该问题是NP-hard k-median problem,无法精确求解。
算法描述
输入是样本对之间的相似度矩阵
- r(i,k),是i传给
k 的,代表i有多想选k 作为自己的代表(对样本i来说,k 与自己最相似) - a(i,k),是k传给
i 的,代表k有多想让i 选自己作为代表(有多少其它样本点想选k作为自己的代表)
对于样本
算法流程
- 初始化
a(i,k)=0 - while 未达到最大迭代次数 or message的改变低于某个阈值 or 近几次(如10次)迭代中根据r(i,k)+a(i,k)确定的聚类中心不变
- for k={1,2,…,n}−{k|s(k,k)<0}
- r(i,k)=s(i,k)−maxk′ ≠k{a(i,k′)+s(i,k′)}
- a(i,k)=min{0,r(k,k)+∑i′∉i,kmax{0,r(i′,k)}}
- a(k,k)=∑i′≠kmax{0,r(i′,k)}
- end
- end
- return {k|a(k,k)+r(k,k)>0}
在第一次迭代的时候,因为a(i,k)=0,r(i,k)=s(i,k)−maxk′≠ks(i,k′),r(k,k)=s(k,k)−maxk′≠ks(k,k′)。因此s(k,k)代表样本k作为聚类中心的合适程度,被成为“preference”。当preference选相似度矩阵的中值(s对角线上元素取值相同)时,会获得适当数目的簇;当preference选相似度矩阵的最小值时,会得到小数目的簇。
在接下来的迭代中,某些不是聚类中心的点的
r(i,k)<0 ,那么a(i,k)<0。不再考虑这些点作为可能的聚类中心来保证迭代算法的效率。为避免消息传递中的数值震荡,例如如果s(1,2)=s(2,1),并且s(1,1)=s(2,2),那么c1=c2=1和c1=c2=2会达到相同的能量,即选样本1还是样本2作为聚类中心都一样,因此会出现这次迭代选1作为聚类中心,下次迭代选2作为聚类中心的现象,从而可能导致算法无法收敛。于是引入阻尼因子(damping factor):
rt+1(i,k)=λ×rt(i,k)+(1−λ)∗rt+1(i,k)at+1(i,k)=λ×at(i,k)+(1−λ)∗at+1(i,k)
也可以通过给相似度矩阵加入一点噪声来避免震荡。算法优势
- 不同于K-means依赖于初始聚类中心的选择,只有当初始点离最优点足够近的时候,才能获得最佳结果,吸引力传播不需要初始聚类中心,尽管利用preference作为先验。
- 相似度矩阵不必是对称的,相似性的度量也不需要满足三角不等式[i.e.,s(i,k)<s(i,j)+s(j,k)],更适合解决实际中的某些问题。例如两个句子之间的相似度度量,从一个城市到另一个城市的交通便利程度的度量。