python matplotlib画图时混淆矩阵重叠了_Matplotlib交互式图表——混淆矩阵可视化

大修了一波bug,终于有时间来码字辣。之前写的太乱了,这个工具的初衷是通过混淆矩阵进行模型的诊断,毕竟除了loss以外,大部分的性能都可以从混淆矩阵导出。而将混淆矩阵的序列进行可视化,有助于得到对模型变化更直观的认识。

我们提供了三种分析的工具:混淆矩阵(热图):用于观察混淆矩阵随Epoch的变化

2. 模型性能:Accuracy, Precision, Recall, F1 Score (即Dice score) 随Epoch的变化(即常规的训练进程图),包括整体性能(各类别平均),以及每个类别的性能(against all others class)

3. FP/FN 散点图:用于分析模型的错误倾向,并支持显示随时间的演化

如果你对这个小工具感兴趣,欢迎check:jiaoyiping630/Confusion_Visualization​github.com

使用几行简单的指令,即可得到如上演示的效果:

train_confusion_path = './confusion_example/confusions_train.pkl'

valid_confusion_path = './confusion_example/confusions_validate.pkl'

from pinglib.interactive.confusion_visualization import Confusion_Visualization

conf_visual = Confusion_Visualization(train_confusion_path, valid_confusion_path)

后面的内容 之 写在前面:

我相信已经有许多更优秀的可视化工具,我并没有做广泛的比较,而是只从用过的lib开始,主要是也很享受这样build from scratch(并不)的过程。交互式图表本身是一件很有意义的事情,让你能够打造更趁手的小工具,事实上由于Matplotlib的并不易用性,我也发现很多道友也在问同样的问题。

为了制作这个工具,从一个小白开始,经历了各种搜索查阅,try and error,花费了不少的时间。所以我想将其中的要点记录下来,作为一个Matplotlib交互图表的入门笔记,以对得起这个盛夏的蜗居周末,也许还能够让后来者更方便查阅。但显然,内容会零碎的多。

1. 将对象绘制在指定的Figure与Axes上

通常我们会使用plt.imshow(), plt.scatter(), plt.plot() 这样的指令进行绘图,但对于复杂的图表这并不能进行精细的控制。从我个人的理解,绘图的对象(也许)包含三个层次:Figure -> Axes -> Object。

为什么要有这样复杂的设计呢?Figure相当于打开的一个窗口/画板,Axes则是在窗口中的一个区域/画纸(例如subplot),而Plot、Scatter这样的对象/内容,是绘制在某个特定的区域的。一个画板上当然可以铺好几张纸,每一张纸上,当然可以画好多个东西,大概是这种逻辑。

首先是Figure,这相当于是一个画板&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值