pair_confusion_matrix#

sklearn.metrics.cluster.pair_confusion_matrix(labels_true, labels_pred)[source]#

来自两个聚类结果的对混淆矩阵。

对混淆矩阵 \(C\) 通过考虑所有样本对,并计算真实聚类和预测聚类中被分到相同或不同簇的样本对数量,来计算两个聚类结果之间的 2x2 相似性矩阵 [1]

如果将聚类在一起的样本对视为正样本对,则与二分类中类似,真负(true negatives)的数量是 \(C_{00}\),假负(false negatives)是 \(C_{10}\),真阳(true positives)是 \(C_{11}\),假阳(false positives)是 \(C_{01}\)

更多内容请参阅用户指南

参数:
labels_true形状为 (n_samples,) 的类数组,dtype 为整型

用作参考的真实类别标签。

labels_pred形状为 (n_samples,) 的类数组,dtype 为整型

要评估的聚类标签。

返回:
C形状为 (2, 2) 的 ndarray,dtype 为 np.int64

列联矩阵。

另请参阅

sklearn.metrics.rand_score

兰德指数。

sklearn.metrics.adjusted_rand_score

调整兰德指数。

sklearn.metrics.adjusted_mutual_info_score

调整互信息。

参考文献

示例

完美匹配的标签分配,无论实际标签值如何,对角线上都有非零条目

>>> from sklearn.metrics.cluster import pair_confusion_matrix
>>> pair_confusion_matrix([0, 0, 1, 1], [1, 1, 0, 0])
array([[8, 0],
       [0, 4]]...

将所有类别成员分配到相同簇的标签分配是完备的,但可能并非总是纯净的,因此会受到惩罚,并且会包含一些非对角线上的非零条目

>>> pair_confusion_matrix([0, 0, 1, 2], [0, 0, 1, 1])
array([[8, 2],
       [0, 2]]...

请注意,该矩阵不是对称的。