Scikit learn 如何在Python中解释两个类的混淆矩阵

Scikit learn 如何在Python中解释两个类的混淆矩阵,scikit-learn,confusion-matrix,Scikit Learn,Confusion Matrix,我正在用Python实现一个预测成功或失败的机器学习模型。我创建了一个虚拟变量,成功时为1,失败时为0。我理解混淆矩阵的概念,但我在网上发现了一些TPs和TNs位于矩阵的相反侧的情况。我想知道如何解释变量的结果。矩阵的左上角是否预测真正?如果是这样的话,这会转化为正确预测成功的数量还是正确预测失败的数量 矩阵是否与下图匹配?如果匹配,如何匹配 理想情况下,请在成功为1、失败为0的情况下描述混淆矩阵的每个角。对于类别为0和1的二元分类,请根据以下条件: 第一排是0班 第二排是一班 第1列是预

我正在用Python实现一个预测成功或失败的机器学习模型。我创建了一个虚拟变量,成功时为1,失败时为0。我理解混淆矩阵的概念,但我在网上发现了一些TPs和TNs位于矩阵的相反侧的情况。我想知道如何解释变量的结果。矩阵的左上角是否预测真正?如果是这样的话,这会转化为正确预测成功的数量还是正确预测失败的数量

矩阵是否与下图匹配?如果匹配,如何匹配


理想情况下,请在成功为1、失败为0的情况下描述混淆矩阵的每个角。

对于类别为0和1的二元分类,请根据以下条件:

  • 第一排是0班
  • 第二排是一班
  • 第1列是预测类0
  • 第二列为预测的1类
系数(0,0)是真负计数(TN)。
系数(0,1)是假阳性计数(FP)。
系数(1,0)是假阴性计数(FN)。

系数(1,1)是真正计数(TP)。

参考文档:

由于您尚未在
混淆矩阵
中为
标签
指定第三个参数,因此
y\u test\u res
中的标签将按排序顺序使用,即在这种情况下
0
然后
1
。行标签表示实际y,列标签表示预测y

因此,左上角显示了故障观察的数量,即实际y值为
0
,预测值为
0
,即为真负值。右下角显示的是真正的正值,即实际y值为
1
,预测值为
0

右上角为实际y=0,预测y=1,即假阳性

使用这个工具会稍微美化一些东西

from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(forest, X_test, y_test)  
print(plt.show())

混淆矩阵的行对应于真实的类,列对应于预测的类。谢谢@Ismael EL ATIFI,所以根据您的说法,左上角是TN,右下角是TP?基本上与我发布的图片相反,对吗?是的。很准确,谢谢你的解释。不幸的是,由于我对这个世界相当陌生,scikit学习文档仍然令人困惑。有没有可能添加标签,或者画出来,或者做些什么来澄清问题?我对TP的右下部分感到困惑。我认为TP是预测正确的时候。在您的上下文中,如果实际值为1,预测值为0,那么TP对我来说没有意义。使用
plot\u composition\u matrix
函数怎么样?这可能更直观。我会更新我的答案。是的,如果你能告诉我怎么画,那就太好了。