我有一个非常奇怪的问题,我在数据集中使用了sklearn混淆矩阵(from sklearn.metrics import confusion_matrix)
,但是我注意到它要打印的值相差很远。我尝试调试它,它似乎可以与字母的前几个字母一起使用,例如“ a”,“ b”,“ c”,“ d”和数字(0、1、2、3)。
但是,如果我使用网站上示例中的其他字母(“ g”,“ r”,“ m”,“ o”)或
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
我得到的是随机结果。这是一个已知问题吗?我现在唯一想到的解决方案是使用数字正确地打印它,然后在Paint中固定标签。这不是我的论文真正想要的解决方案。
据我所见,这都应该返回第三个结果。有什么我想念的东西吗?有没有人遇到这个问题?谢谢!
答案 0 :(得分:2)
您正在向classes
传递与plot_confusion_matrix
不匹配的confusion_matrix
参数,从而导致这些例程使用从类到混淆矩阵行和列的不同映射。 confusion_matrix
使用一个映射,而plot_confusion_matrix
使用另一个映射,导致结果混乱。
您需要labels
的{{1}}参数与confusion_matrix
的{{1}}参数相匹配:
classes