聚类精确度(Cluster Accuracy)

您所在的位置:网站首页 聚类图谱的标签是怎么确定的 聚类精确度(Cluster Accuracy)

聚类精确度(Cluster Accuracy)

2024-07-13 12:28| 来源: 网络整理| 查看: 265

介绍:

聚类精确度(Cluster Accuracy,AC)用于比较获得标签和数据提供的真实标签: A C = ∑ i = 1 n δ ( s i , m a p ( r i ) ) N AC = \frac{\sum_{i=1}^{n}\delta(s_i , map(r_i))}{N} AC=N∑i=1n​δ(si​,map(ri​))​ 其中: r i r_i ri​为聚类后的标签。 s i s_i si​为真实标签。 n n n为数据总的个数。 δ \delta δ表示指示函数,具体如下: δ ( x , y ) = { 1 i f x = y 0 o t h e r w i s e \delta(x,y) = \begin{cases} 1 & if x=y \\ 0 & otherwise \end{cases} δ(x,y)={10​ifx=yotherwise​ 而式中的map则表示最佳类标的重现分配,以确保统计的正确。一般的该最佳重分配可以通过匈牙利算法(Kuhn-Munkres or Hungarian Algorithm)实现,从而在多项式时间内求解该任务(标签)分配问题。

参考博客:[ML] 聚类评价指标

Python代码:

需要numpy和sklearn库。利用sklearn调用匈牙利算法 也可以直接调用scikit-learn库中的函数来计算metrics.accuracy_score(y_true, y_pred)

import numpy as np from sklearn import metrics def acc(y_true, y_pred): """ Calculate clustering accuracy. Require scikit-learn installed # Arguments y: true labels, numpy.array with shape `(n_samples,)` y_pred: predicted labels, numpy.array with shape `(n_samples,)` # Return accuracy, in [0,1] """ y_true = y_true.astype(np.int64) assert y_pred.size == y_true.size D = max(y_pred.max(), y_true.max()) + 1 w = np.zeros((D, D), dtype=np.int64) for i in range(y_pred.size): w[y_pred[i], y_true[i]] += 1 from sklearn.utils.linear_assignment_ import linear_assignment ind = linear_assignment(w.max() - w) return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size if __name__ == '__main__': # A为真实值、B,C,D为等效果的预测值 即: func(A,B)=func(A,C); func(B,D)=func(C,D); A = np.array([1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]) B = np.array([1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 3, 3, 3]) C = np.array([2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 3, 2, 2, 3, 3, 3]) # 将B中的 1 与 2 互换 D = np.array([1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 2, 1, 1, 2, 2, 2]) # 将B中的 2 与 3 互换 # 测试 print(acc(A, B)) # 0.7058823529411765 print(acc(A, C)) # 0.7058823529411765 print(metrics.accuracy_score(A, B)) # 0.7058823529411765 print(acc(B, D)) # 1.0 print(acc(C, D)) # 1.0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3