首页 > 解决方案 > 如何以指数形式将混淆矩阵中显示的值修复为正常形式

问题描述

在处理我的项目时,我从测试数据中获得了一个混淆矩阵:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
cm

输出为:

array([[1102,   88],
   [  85,  725]], dtype=int64)

使用 seaborn 和 matplotlib,我使用以下代码对其进行了可视化:

import seaborn as sns
import matplotlib.pyplot as plt     

ax= plt.subplot();
sns.heatmap(cm, annot=True,cmap='Blues',ax=ax);
# labels, title and ticks
ax.set_xlabel('Predicted labels');ax.set_ylabel('True labels'); 
ax.set_ylim(2.0, 0)
ax.set_title('Confusion Matrix');
ax.xaxis.set_ticklabels(['Fake','Real']); 
ax.yaxis.set_ticklabels(['Fake','Real']);

得到的输出是:

混淆矩阵

问题是 3 位数字(这里 1102 显示为 11e+03)或以上的值以指数形式显示。

有没有办法以正常形式显示它?

标签: pythonmatplotlibseaborn

解决方案


您可以使用以下"fmt"选项:

cm = np.array([[1102,   88],[85,  725]])

import seaborn as sns
import matplotlib.pyplot as plt     

sns.heatmap(cm, annot=True,fmt="d",cmap='Blues')

在此处输入图像描述


推荐阅读