python表格混淆矩阵

python表格混淆矩阵,python,scikit-learn,tabular,confusion-matrix,Python,Scikit Learn,Tabular,Confusion Matrix,在我的sklearn逻辑回归模型中,我使用metrics.conflusion\u matrix命令获得了一个混淆矩阵。数组看起来像这样 array([[51, 0], [26, 0]]) 忽略模型做得很糟糕这一事实,我试图理解以非常好的方式将这个矩阵制成表格的最佳方式是什么 我正在尝试使用该代码,该代码部分对我有效 print tabulate(cm,headers=['Pred True', 'Pred False']) 因为它给出了输出 Pred True Pre

在我的sklearn逻辑回归模型中,我使用metrics.conflusion\u matrix命令获得了一个混淆矩阵。数组看起来像这样

array([[51,  0],
   [26,  0]])
忽略模型做得很糟糕这一事实,我试图理解以非常好的方式将这个矩阵制成表格的最佳方式是什么

我正在尝试使用该代码,该代码部分对我有效

print tabulate(cm,headers=['Pred True', 'Pred False']) 
因为它给出了输出

  Pred True    Pred False
-----------  ------------
     51             0
     26             0
编辑

要插入行名,我意识到插入元素而不是zip会有所帮助

cm_list=cm.tolist()
cm_list[0].insert(0,'Real True')
cm_list[1].insert(0,'Real False')
print tabulate(cm_list,headers=['Real/Pred','Pred True', 'Pred False'])
正如它所给

Real/Pred      Pred True    Pred False
-----------  -----------  ------------
Real True             51             0
Real False            26             0
然而,我仍然想知道是否有一个更快或替代的方式美化混乱矩阵。我在网上找到了一些绘图示例,但我不需要这些


谢谢,

您是否考虑过创建一个图形而不是表格?改编一些代码,从一个你可以得到一个体面的形象,这表明你想要什么

import numpy as np
from matplotlib import pyplot as plt

def plot_confusion_matrix(cm, target_names, title='Confusion matrix', cmap=plt.cm.Blues):
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(target_names))
    plt.xticks(tick_marks, target_names, rotation=45)
    plt.yticks(tick_marks, target_names)
    plt.tight_layout()

    width, height = cm.shape

    for x in xrange(width):
        for y in xrange(height):
            plt.annotate(str(cm[x][y]), xy=(y, x), 
                        horizontalalignment='center',
                        verticalalignment='center')
    plt.ylabel('True label')
    plt.xlabel('Predicted label')

cm = np.array([[13,  0,  0],[ 0, 10,  6],[ 0,  0,  9]])
plot_confusion_matrix(cm, ['A', 'B', 'C'])
nltk库包含一个混乱矩阵,该矩阵使用简单,产生的输出比scikit learn更好:

from nltk import ConfusionMatrix
print(ConfusionMatrix(list(y_true_values), list(y_predicted_values)))
您可以看到一个输出示例。请注意,我在list函数中包装了y_true_值和y_predicted_值,因为ConversionMatrix需要Python列表,而不是scikit learn输出的NumPy数组


另外,MLXTACK库包含一个函数来绘制混淆矩阵,记录下来。

看起来不错,是的,我确实考虑过了,但我只是认为这是对我的需要的过度处理。然而,你的情节要清晰得多,方框中数字的出现使它成为一个吸引人的替代品。啊,很抱歉,我没意识到你看过这个。我总是喜欢直观的表示,它的伸缩性比一张有大量标签的表格要好得多。