我不知道我是否正确设置了二进制分类问题。我将正类标记为 1,将负类标记为 0。但是据我了解,默认情况下 scikit-learn 使用类 0 作为其混淆矩阵中的正类(因此与我的设置方式相反)。这让我很困惑。在 scikit-learn 的默认设置中,第一行是正类还是负类?让我们假设混淆矩阵输出:
confusion_matrix(y_test, preds)
[ [30 5]
[2 42] ]
它在混淆矩阵中会是什么样子? scikit-learn 中的实际实例是行还是列?
prediction prediction
0 1 1 0
----- ----- ----- -----
0 | TN | FP (OR) 1 | TP | FP
actual ----- ----- actual ----- -----
1 | FN | TP 0 | FN | TN
原文由 OAK 发布,翻译遵循 CC BY-SA 4.0 许可协议
scikit learn 按升序对标签进行排序,因此 0 是第一列/行,1 是第二列
这是写在 文档 中的:
因此,您可以通过为 confusion_matrix 调用提供标签来改变此行为
实际/预测的排序就像在您的图像中一样 - 预测在列中,实际值在行中