sklearn.metrics.fowlkes_mallows_score¶
sklearn.metrics.fowlkes_mallows_score(labels_true, labels_pred, *, sparse=False)
测量一组数据点的两个聚类的相似度。
版本0.18中的新功能。
Fowlkes-Mallows指数(FMI)定义为精度和召回率之间的几何平均值:
FMI = TP / sqrt((TP + FP) * (TP + FN))
其中TP是真正例的数量(即,在labels_true和labels_pred中属于同一簇的点对的数量),FP是假正例的数量(即,在labels_true中而不在labels_pred中的在同一簇中的点对的数量),FN是假负例(即,属于labels_pred中相同簇而不属于labels_True中的在同一簇中的点对的数量)。
分数范围从0到1。较高的值表示两个聚类之间的相似性良好。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
labels_true | int array, shape = (n_samples ,)数据聚集成不相交的子集。 |
labels_pred | array, shape = (n_samples , )数据聚集成不相交的子集。 |
sparse | bool 在内部使用稀疏矩阵计算权变矩阵。 |
返回值 | 说明 |
---|---|
score | float 得到的Fowlkes-Mallows得分。 |
参考
2 Wikipedia entry for the Fowlkes-Mallows Index
示例
完全标签既均匀又完整,因此得分为1.0:
>>> from sklearn.metrics.cluster import fowlkes_mallows_score
>>> fowlkes_mallows_score([0, 0, 1, 1], [0, 0, 1, 1])
1.0
>>> fowlkes_mallows_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0
如果类成员完全分散在不同的群集中,则分配是完全随机的,因此FMI为空:
>>> fowlkes_mallows_score([0, 0, 0, 0], [0, 1, 2, 3])
0.0