我想为我预测的班级标签制作混淆矩阵。对于每一行,我预测了前五个类标签,并将其分配给列表列表。在我每行的实际数据集中,有一个关联的类标签。它有多类标签。我使用了决策树分类。你能建议如何制作混淆矩阵并得到TP,TN,FP,FN。 这里X是整个数据集的输入行。 y是数据集的目标类标签。 clas是包含不同类标签的列表。
from sklearn.metrics import confusion_matrix
indices=[]
DTC= DecisionTreeClassifier()
DTC.fit(X,y)
y_pre=DTC.predict_proba(X)
for sublist in y_pre:
index1=sorted(range(len(sublist)), key=lambda i: sublist[i], reverse=True)[:5]
indices.append(index1)
m=[]
for j in indices:
for k in j:
m.append(clas[k])
ans=list(zip(*[iter(m)]*5))
mat=confusion_matrix(y, ans)
print(mat)