封面: 仅使用numpy实现混淆矩阵计算(不使用sklearn)

仅使用numpy实现混淆矩阵计算(不使用sklearn)

ZL Asica2023-01-16

当我们拿到数据后,经过数据清洗、预处理和整理之后,我们做的第一步是利用这些数据训练出一个模型。我们究竟如何衡量模型的准确度和有效性?性能和效率又如何?这就是混淆矩阵被用来解决的问题。混淆矩阵是机器学习分类的性能的一种方式。

我们可以使用这个矩阵直观地看到每个数据的真实值和我们模型的预测值的关系。

来源:https://b23.tv/dTJ48UB

3.1 使用sklearn.metrics的confusion_matrix

本方法使用了sklearn.metrics下的confusion_matrix函数直接进行生成

PYTHON
1from sklearn.metrics import confusion_matrix 2 3y_true = [2, 0, 2, 2, 0, 1] 4y_pred = [0, 0, 2, 2, 0, 2] 5confusion_matrix(y_true, y_pred)

3.2 仅使用numpy

本方法仅使用了numpy,没有使用任何其他的库,包括sklearn在内实现混淆矩阵的计算。

PYTHON
1import numpy as np 2 3def compute_confusion_matrix(true, pred): 4 '''输入true和pred 5 其输出结果与以下内容相同(计算时间也相似)。 6 "from sklearn.metrics import confusion_matrix" 7 然而,这个函数避免了对sklearn的依赖。''' 8 9 K = len(np.unique(true)) # features的数量 10 result = np.zeros((K, K)) 11 12 for i in range(len(true)): 13 result[true[i]][pred[i]] += 1 14 15 return result
Creative Commons Logo

本文作者:ZL Asica

本文标题:仅使用numpy实现混淆矩阵计算(不使用sklearn)

本文链接:https://www.zla.pub/numpy-only-confusion-matrix

本文采用 CC BY-SA 4.0 Deed 进行许可