SVM分类后混淆矩阵显示科学计数法格式异常问题咨询
解决混淆矩阵科学计数法显示问题
这个问题其实是seaborn.heatmap的默认格式化逻辑导致的——虽然你的混淆矩阵元素都是整数(比如290、190这类样本计数),但matplotlib内置的数值格式化器会自动切换到科学计数法,当它觉得这样的显示更"紧凑"时(比如数值超过一定位数),就会出现2.9e+02这种格式。
快速解决方法
直接在heatmap函数里指定整数格式的参数fmt='d',因为混淆矩阵的元素都是样本数量,必然是整数:
plt.figure(figsize = (6,6)) # 添加fmt='d'强制以整数格式显示标注 sns.heatmap(cm, annot=True, cbar=False, fmt='d') plt.xlabel("predicted") plt.ylabel("true")
补充说明
- 如果后续遇到需要保留小数的场景(比如概率矩阵),可以用
fmt='.2f'来指定保留两位小数; - 确认下你的
cm变量类型:confusion_matrix返回的是整数类型的数组,所以用fmt='d'完全适配,不会出现格式错误。
内容的提问来源于stack exchange,提问作者user10026373
相关产品推荐
相关产品推荐

