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得分。

参考

1 E. B. Fowkles and C. L. Mallows, 1983. “A method for comparing two hierarchical clusterings”. Journal of the American Statistical Association

2 Wikipedia entry for the Fowlkes-Mallows Index

示例

完全标签既均匀又完整,因此得分为1.0:

>>> from sklearn.metrics.cluster import fowlkes_mallows_score
>>> fowlkes_mallows_score([0011], [0011])
1.0
>>> fowlkes_mallows_score([0011], [1100])
1.0

如果类成员完全分散在不同的群集中,则分配是完全随机的,因此FMI为空:

>>> fowlkes_mallows_score([0000], [0123])
0.0