在Python中计算confusion_matrix

时间:2018-10-23 00:00:16

标签: python-3.x math machine-learning deep-learning

我想为三个类别计算计算True_Positive, False_Positive,False_Negative, True_Negative。我曾经有两个类Cat Dog,这就是我用来计算confusion_matrix的方式

    Y_pred has either a cat or dog 
    y_true has either a cat or dog  
    confusion_matrix_output =confusion_matrix(y_true, y_pred) 
    True_Positive = confusion_matrix_output[0][0]
    False_Positive = confusion_matrix_output[0][1]
    False_Negative = confusion_matrix_output[1][0]
    True_Negative = confusion_matrix_output[1][1]

现在我有三个班级'猫''狗''兔子'

Y_pred has Cat Dog rabbit
y_true has Cat Dog rabbit

如何计算True_Positive,False_Positive,False_Negative,True_Negative ???

1 个答案:

答案 0 :(得分:1)

现在您有3个班级,因此不再只是正面和负面。 您必须查看: 猫被预测为猫,狗被预测为狗,兔子被预测为兔子,狗被预测为猫,猫被预测为狗,依此类推。对于这种情况,您将有3 x 3的混淆矩阵。混淆矩阵的大小为n x n,其中n为类别数

sklearn.metrics.confusion_matrix提取所有内容并为您创建一个n x n的矩阵。试试这个:

from sklearn.metrics import confusion_matrix
confusion_matrix_output =confusion_matrix(y_true, y_pred) 
Cat_P_Cat = confusion_matrix_output[0][0]