外部指标(有真实标签)
兰德指数(RI)
取值为[0−1][0-1][0−1] 越大越表明聚类结果与真实结果吻合
RI=a+bcn2
RI=\frac{a+b}{c_n^2}
RI=cn2a+b
- a:在预测结果和真实标签中都属于同一簇的样本对的数量
- b:在预测结果和真实标签中都不属于同一簇的样本对的数量
- cn2c_n^2cn2:组合数
def RI(Y_pred, Gt):
a=0
b=0
n = len(Gt)
for i in range(n):
for j in range(n):
if Y_pred[i]==Y_pred[j] and Gt[i]==Gt[j] :
a += 1
elif Y_pred[i]!=Y_pred[j] and Gt[i]!=Gt[j]:
b += 1
return (a+b)*2/(n*(n-1))
调整兰德指数(ARI)
由于当两个划分是随机的时候RI的值并不为0,所以对其进行调整。
ARI=∑ijCnij2−[∑iCai2∑jCbj2]/Cn212[∑iCai2+∑jCbj2]−[∑iCai2∑jCbj2]/Cn2
ARI=\frac{\sum_{ij}{C^2_{n_{ij}}}-[\sum_iC^2_{a_i}\sum_jC^2_{b_j}]/C^2_n}{\frac{1}{2}[\sum_iC^2_{a_i}+\sum_jC^2_{b_j}]-[\sum_iC^2_{a_i}\sum_jC^2_{b_j}]/C^2_n}
ARI=21[∑iCai2+∑jCbj2]−[∑iCai2∑jCbj2]/Cn2∑ijCnij2−[∑iCai2∑jCbj2]/Cn2
取值范围为[−1,1][-1,1][−1,1],当两个划分是随机的时候,ARI的值为0。
-
首先要得到列联表

-
cn2c_n^2cn2:组合数
可直接调用sklean中的代码
ARI = metrics.adjusted_rand_score(X, Y)
标准互信息(NMI)
通过互信息来度量两个划分之间的相似度,取值在[0−1][0-1][0−1]之间。
NIM=2∗I(X,Y)H(X)+H(Y)
NIM = \frac{2*I(X,Y)}{H(X)+H(Y)}
NIM=H(X)+H(Y)2∗I(X,Y)
- H(X)H(X)H(X):代表X的熵H(X)=∑p(x)∗logp(x)H(X)=\sum{p(x)*logp(x)}H(X)=∑p(x)∗logp(x)
- I(X,Y)I(X,Y)I(X,Y):代表X和Y之间的互信息I(X,Y)=∑x∑yp(x,y)∗logp(x,y)p(x)p(y)I(X,Y)=\sum_x\sum_y{p(x,y)*log\frac{p(x,y)}{p(x)p(y)}}I(X,Y)=∑x∑yp(x,y)∗logp(x)p(y)p(x,y)
可直接调用sklean
NMI = metrics.normalized_mutual_info_score(X,Y)
同质性和完整性
同质:簇内是否只包含同一类别的样本。
完整:同一类别的样本点是否被划分到同一簇内。
K=1−H(Y∣X)H(Y)
K = 1-\frac{H(Y|X)}{H(Y)}
K=1−H(Y)H(Y∣X)
C=1−H(X∣Y)H(X)
C = 1-\frac{H(X|Y)}{H(X)}
C=1−H(X)H(X∣Y)
- X为预测结果,Y为标签
- H(X)H(X)H(X):代表X的熵H(X)=∑p(x)∗logp(x)H(X)=\sum{p(x)*logp(x)}H(X)=∑p(x)∗logp(x)
K = metrics.homogeneity_score(Y,X)
C = metrics.completeness_score(Y, X)
V-Measure
同时考虑到同质性和完整性
V−Measure=(1+β)∗K∗Cβ∗K+C
V-Measure = \frac{(1+\beta)*K*C}{\beta*K+C}
V−Measure=β∗K+C(1+β)∗K∗C
V-Measure = metrics.v_measure_score(Y, X)
内部指标(无真实标签)
轮廓分数(Silhouette Score)
轮廓分数主要基于样本点与簇内和相邻簇内的相似度,距离来计算的,数值越高越好
Score=a+bmax(a,b)
Score = \frac{a+b}{max(a,b)}
Score=max(a,b)a+b
- a:样本点距离簇内样本点的平均距离
- b:样本点距离最近簇中样本的平均距离
Silhouette_Score = metrics.silhouette_score(X, km_labels, metric='euclidean')
∣∣[E∗]:,i∣∣2−minmax−min \frac{||[E^*]_{:,i}||_2-min}{max-min} max−min∣∣[E∗]:,i∣∣2−min
∣∣[E∗]:,i∣∣2−∣∣[W]:,i∣∣2−minmax−min s.t. Wi,i=0 \frac{||[E^*]_{:,i}||_2-||[W]_{:,i}||_2-min}{max-min} \space s.t.\space W_{i,i}=0 max−min∣∣[E∗]:,i∣∣2−∣∣[W]:,i∣∣2−min s.t. Wi,i=0
文章介绍了用于衡量聚类性能的几个关键指标:兰德指数(RI)、调整后的兰德指数(ARI)、标准互信息(NMI)以及无标签情况下的轮廓分数(SilhouetteScore)。这些指标帮助评估聚类结果与真实标签的匹配程度和簇的结构质量。
997

被折叠的 条评论
为什么被折叠?



