python实现混淆矩阵(numpy)

n u m p y 实现混淆矩阵( p y t h o n ) numpy实现混淆矩阵(python) numpy实现混淆矩阵(python


假设有A、B、C、D、E五个类别


一 确定输出和标签

import numpy as np
y_true = ["A"]*20 + ["B"]*20 + ["C"]*20 + ["D"]*20 + ["E"]*20
len(y_true)

在这里插入图片描述

y_true

在这里插入图片描述

y_pred =["D"]*5+ ["A"]*30 + ["B"]*15 + ["C"]*25 + ["D"]*20 + ["E"]*5
len(y_pred)
y_pred

二 初始化混淆矩阵

# 初始化混淆矩阵
classes_num = 5
confusion_matrix = np.zeros((classes_num,classes_num))
confusion_matrix

在这里插入图片描述

三 计算混淆矩阵思路:同时遍历所有pred和label,发现属于混淆矩阵哪一个位置,哪一个位置就+1

step1:将pred和label进行一对一组合
list_pred_label = []
for i in range(len(y_pred)):
  list_pred_label.append([y_pred[i],y_true[i]])
print(list_pred_label)

在这里插入图片描述

Step2:遍历list_pred_label,将其中的类别转为混淆矩阵索引(A:0,B:1,C:2,D:3,E:4)
for i in list_pred_label:
  if i[0] == "A":
    i[0] = 0
  elif i[0] == "B":
    i[0] = 1
  elif i[0] == "C":
    i[0] = 2
  elif i[0] == "D":
    i[0] = 3  
  elif i[0] == "E":
    i[0] = 4  
  if i[1] == "A":
    i[1] = 0
  elif i[1] == "B":
    i[1] = 1
  elif i[1] == "C":
    i[1] = 2
  elif i[1] == "D":
    i[1] = 3  
  elif i[1] == "E":
    i[1] = 4  
print(list_pred_label)

在这里插入图片描述

step3:对混淆矩阵进行赋值
for i in list_pred_label:
  confusion_matrix[i[0],i[1]] += 1
print(confusion_matrix)

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值