使用Numpy在Python中进行混淆矩阵练习
我试图建立一个混淆矩阵(2,2),给出两个列表作为输入,其中包括真阳性、假阳性、真阴性、假阴性。第一个列表包含实际值,第二个列表仅包含1和0的预测值 看起来我的for循环或if语句中缺少了一些内容,但我无法找出是什么 这是我的密码:使用Numpy在Python中进行混淆矩阵练习,python,arrays,numpy,loops,matrix,Python,Arrays,Numpy,Loops,Matrix,我试图建立一个混淆矩阵(2,2),给出两个列表作为输入,其中包括真阳性、假阳性、真阴性、假阴性。第一个列表包含实际值,第二个列表仅包含1和0的预测值 看起来我的for循环或if语句中缺少了一些内容,但我无法找出是什么 这是我的密码: import numpy as np y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] X = [] TP = float(0) FP =
import numpy as np
y_true = [int(x) for x in input().split()]
y_pred = [int(x) for x in input().split()]
X = []
TP = float(0)
FP = float(0)
FN = float(0)
TN = float(0)
for x, y in zip(y_true, y_pred):
if x == 1:
if y == 1:
TP += 1
else:
FN += 1
elif x == 0:
if y == 1:
FP += 1
else:
TN += 1
X.append(TP)
X.append(FP)
X.append(FN)
X.append(TN)
Y = np.array(X)
Y = Y.reshape(2, 2)
print(Y)
Input:
1100
1000
Output:
[[0. 0.]
[0. 0.]]
提前感谢您的帮助!另外,对于我的代码和逻辑内容的所有注释都非常受欢迎,因为我刚刚开始学习。在python中,如果不插入任何字符,split()函数具有默认值。默认值为空格(“”)。所以不要尝试“1100”,而是“110”。然后,您可以得到您想要的结果。非常感谢您。。。它现在按预期工作。我现在没有意识到这一点,我觉得很傻。祝你有一个美好的一天!