【发布时间】:2020-07-26 08:12:15
【问题描述】:
我正在尝试在不使用 sklearn 库的情况下构建混淆矩阵。我无法正确形成混淆矩阵。这是我的代码:
def comp_confmat():
currentDataClass = [1,3,3,2,5,5,3,2,1,4,3,2,1,1,2]
predictedClass = [1,2,3,4,2,3,3,2,1,2,3,1,5,1,1]
cm = []
classes = int(max(currentDataClass) - min(currentDataClass)) + 1 #find number of classes
for c1 in range(1,classes+1):#for every true class
counts = []
for c2 in range(1,classes+1):#for every predicted class
count = 0
for p in range(len(currentDataClass)):
if currentDataClass[p] == predictedClass[p]:
count += 1
counts.append(count)
cm.append(counts)
print(np.reshape(cm,(classes,classes)))
但是这会返回:
[[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]]
但是我不明白为什么每次重置计数时每次迭代都会导致 7 并且它循环不同的值?
这是我应该得到的(使用sklearn的confusion_matrix函数):
[[3 0 0 0 1]
[2 1 0 1 0]
[0 1 3 0 0]
[0 1 0 0 0]
[0 1 1 0 0]]
【问题讨论】:
标签: python machine-learning confusion-matrix