我想绘制一个混淆矩阵来可视化分类器的性能,但它只显示标签的数量,而不是标签本身:
from sklearn.metrics import confusion_matrix
import pylab as pl
y_test=['business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business']
pred=array(['health', 'business', 'business', 'business', 'business',
'business', 'health', 'health', 'business', 'business', 'business',
'business', 'business', 'business', 'business', 'business',
'health', 'health', 'business', 'health'],
dtype='|S8')
cm = confusion_matrix(y_test, pred)
pl.matshow(cm)
pl.title('Confusion matrix of the classifier')
pl.colorbar()
pl.show()
如何将标签(健康、商业等)添加到混淆矩阵中?
原文由 hmghaly 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如 这个问题 所暗示的,您必须通过存储您调用的 matplotlib 函数传递的图形和轴对象来“打开” 较低级别的艺术家 API (
fig
,ax
和cax
下面的变量)。然后,您可以使用set_xticklabels
/set_yticklabels
替换默认的 x 轴和 y 轴刻度:请注意,我将
labels
列表传递给了confusion_matrix
函数以确保它正确排序,匹配刻度。结果如下图: