我想绘制一个混淆矩阵来可视化Classifier的性能,但它只显示标签的编号,而不是标签本身:
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()
如何将标签(健康、业务等)添加到混淆矩阵中?
更新:
在scikit learn 0.22中,有一个新特性可以直接绘制混淆矩阵。
请参阅文档:sklearn.metrics.plot_confusion_matrix
旧答案:
我认为这里值得一提^{} 的用法。
正如this question中所暗示的,您必须“打开”lower-level artist API,方法是存储您调用的matplotlib函数传递的图形和轴对象(下面的
fig
、ax
和cax
变量)。然后可以使用set_xticklabels
/set_yticklabels
替换默认的x轴和y轴刻度:请注意,我将
labels
列表传递给了confusion_matrix
函数,以确保它的排序正确,与记号匹配。这将生成下图:
你可能对 https://github.com/pandas-ml/pandas-ml/
它实现了Python熊猫的混淆矩阵实现。
一些特点:
下面是一个例子:
相关问题 更多 >
编程相关推荐