假设我有模型 A 和模型 B,我想通过检查混淆矩阵来比较它们的性能。它们都产生一个预测列表,pred_A并且pred_B对应于一组真实值列表ground_truths。我可以使用类似的东西sklearn.metrics.confusion_matrix来为每个模型生成混淆矩阵:
cm_A = confusion_matrix(ground_truths, pred_A) # e.g. [[5,1], [2,3]]
cm_B = confusion_matrix(ground_truths, pred_B) # e.g. [[6,0], [3,2]]
我想弄清楚的是如何从混淆矩阵的每个单元格中获取特定的索引,对应于地面实况类。这将让我调查哪些特定数据点是真阳性、假阳性、假阴性和真阴性,并让我根据它们的输入特征搜索模式。在上面的示例中,两个假阴性是否与和中的假阴性相同?还是在两个模型预测之间所有的真阳性都与所有的假阴性都发生了转换?如果我知道他们在列表中的索引,我可以很容易地回答这个问题。cm_Acm_Bground_truths
我可以想到愚蠢/低效的方法来做到这一点,但我很想找到一个可以扩展到任意数量的标签的解决方案。