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=integral

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

labels_pred形状为 (n_samples,) 的类数组对象,dtype=integral

要评估的簇标签。

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

列联矩阵。

另请参阅

sklearn.metrics.rand_score

兰德指数(Rand Score)。

sklearn.metrics.adjusted_rand_score

调整兰德指数(Adjusted Rand Score)。

sklearn.metrics.adjusted_mutual_info_score

调整互信息(Adjusted Mutual Information)。

References

示例

完美匹配的标签分配在对角线上有非零值,而与实际标签值无关。

>>> 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]]...

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