我正在做一个测试,sklearn.metrics.confusion_matrix
看看如果在预测数组中有一个不在标签和映射数组中的类会发生什么。我的代码是:
from sklearn.metrics import confusion_matrix as cm
a = ["positive\n", "positive\n", "negative\n", "positive\n", "negative\n"]
b = ["negative\n", "negative\n", "don't\n", "negative\n", "negative\n"]
m = ["positive\n", "negative\n"]
c = cm(a, b, m)
TN, FP, FN, TP = c.ravel()
print(c)
print("")
print("{} {} {} {}\n".format(TN, FP, FN, TP))
输出是:
[[0 3]
[0 1]]
0 3 0 1
所以课程don't
被跳过。
但是,如果您查看我安装的版本的文档,该方法“应该”输出混淆矩阵的值,如我所写:TN、FP、FN、TP。我的输出是不同的。似乎真正的输出被翻转了:TP、FN、FP、TN。我的想法对吗?v0.21.2
ravel()
print
ravel()
没有错误。您已定义标签:
m = ["positive\n", "negative\n"]
因此"positive\n"
是负数和"negative\n"
正数。结果符合您的规范。
如果你这样修改m
:
m = ["negative\n", "positive\n"]
你会得到:
1 0 3 0
对TN, FP, FN, TP
,分别。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句