在机器学习领域,特别是在聚类分析中,评估模型的性能是一个重要的步骤。为了衡量聚类算法的效果,经常需要构建一个描述真实标签与预测标签之间关系的矩阵,这个矩阵被称为标签关系矩阵。本文将介绍如何使用sklearn库中的metrics模块来构建这个矩阵。
在sklearn.metrics.cluster模块中,有一个名为contingency_matrix的函数,它可以帮助构建这样的矩阵。这个函数接受两个参数:真实标签数组labels_true和预测标签数组labels_pred。此外,它还接受一些可选参数,如eps、sparse和dtype,以控制输出矩阵的类型和精度。
以下是contingency_matrix函数的主要参数:
contingency_matrix函数返回一个形状为[n_classes_true, n_classes_pred]的矩阵C,其中C_{i, j}表示真实类别i中的样本数量和预测类别j中的样本数量。如果eps为None,这个数组的数据类型将是整数,除非通过dtype参数设置了其他类型。如果提供了eps,数据类型将是浮点数。如果sparse=True,返回的将是一个sklearn.sparse.csr_matrix。
下面是一个使用contingency_matrix函数的简单示例。首先,需要导入必要的库,然后定义真实标签和预测标签的数组,最后调用函数并打印结果。
from sklearn.metrics.cluster import contingency_matrix
# 定义真实标签和预测标签
labels_true = [0, 0, 1, 1, 2, 2]
labels_pred = [1, 0, 2, 1, 0, 2]
# 调用函数并打印结果
contingency_matrix(labels_true, labels_pred)
执行上述代码后,将得到一个如下所示的矩阵:
array([[1, 1, 0],
[0, 1, 1],
[1, 0, 1]])
这个矩阵清晰地展示了不同真实类别和预测类别之间的关系。例如,第一行第一列的值为1,表示有一个样本的真实类别为0,预测类别也为0。