在 sklearn 指标中包含命中率为零的行和列 confusion_matrix

Include rows and columns with zero hits in sklearn metrics confusion_matrix

我想将几个混淆矩阵的结果合并到一个矩阵中。我的预测值和真实值可以是 0、1、2。 只要所有值都存在,我就可以将值相加。但是,当某些值根本不存在时,行数和列数会发生变化。因此,我无法将此类数组添加到结果数组中。如何强制混淆矩阵包含其中样本为零的行和列?

import numpy as np
from sklearn.metrics import confusion_matrix

combined_confusion_matrix = np.zeros((3,3))
gt1 = np.array([0,1,2,0,1,2])
pred1 = np.array([2,1,2,0,1,2])
cm1 = confusion_matrix(gt1, pred1)  # [[1 0 1][0 2 0][0 0 2]]
combined_confusion_matrix +=  cm1
gt2 = np.array([0,0,2,2])
pred2 = np.array([0,2,2,2])
cm2 = confusion_matrix(gt2, pred2)  # Got [[1 1][0 2]], Desired [[1 0 1][0 0 0][0 0 2]]
combined_confusion_matrix += cm2  # Error due to different dimensions

这对我有用:

my_bins = [0, 1, 2]
cm2 = confusion_matrix(gt2, pred2, labels=my_bins)