数据处理包:Numpy,pandas,matplotlib,sklearn等记录

Numpy

1.想实现用matplotlib对confusion matrix画color map时,能够根据每个元素占每一行样本总量而非总体样本总量显示color map颜色。可以使用两个confusion matrix来作图,第一个实际的confusion matrix为原始,用来显示数据,另一个confusion matrix对每一行进行归一化到[0,1](具体方法每个元素除以每一行的样本总数,pps:每一行的样本总量为True Label),然后对这张图作color map.其中用到一个numpy函数:np.apply_along_axis(func,axis,data),对data按axis轴方向的每一个元素作func操作,实现对一行的每个元素除以这行的总数,虽然有更简单的方法,但是此方法可以用在列上,通用性强.

confusionMatrix = np.array([.....]) # 原始混淆矩阵

def my_func(a):                     #每行操作
    return a/np.sum(a)
   
confusionMatrixColor = np.apply_along_axis(my_func,axis=1,arr=confusionMatrix) 
                                     # 用来制作color map的混淆矩阵

plt.imshow(confusionMatrixColor, interpolation='nearest',cmap=plt.cm.Blues) #制作color map

fmt = 'd'
thresh = 0.5
for i, j in itertools.product(range(confusionMatrix.shape[0]), range(confusionMatrix.shape[1])):
    plt.text(j, i, format(confusionMatrix[i, j], fmt),
             horizontalalignment="center",
             color="white" if confusionMatrixColor[i, j] > thresh else "black")    #填充原始混淆矩阵

对比:
在这里插入图片描述
在这里插入图片描述

Matplotlib

1.调整x轴刻度标签并右对齐,在刻度标签字符串长度很长时很有用:

plt.xticks(tick_marks, Xticks, rotation=45)
fig = plt.gcf()
fig.autofmt_xdate()

效果对比:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值