我尝试使用confusion_matrix功能,如下所示:
tn, fp, fn, tp = confusion_matrix(y_true, y_predict).ravel()
y_true
和y_predict
都是列表。当我恢复他们的形状时,我得到:(71,)
。
但是我对上述声明收到以下错误:
ValueError: too many values to unpack
我不确定是不是因为(71,)
中的第二个(空)维度?如果这是问题,我不确定如何删除它。
有什么想法吗?
感谢。
答案 0 :(得分:2)
如果输出数量确定,则只能动态分配多个变量。如果将confusion_matrix
的结果分配给单个变量,则可以在循环中检查其内容并有条件地分配内容:
returned = confusion_matrix(y_true, y_predict).ravel()
for var in returned:
#... do stuff with each item in the returned collection
你也可以检查它的长度,如果它是4,你可以照常进行:
if len(returned) == 4:
tn, fp, fn, tp = returned
答案 1 :(得分:0)
您尝试执行的行 tn, fp, fn, tp = confusion_matrix(y_true, y_predict).ravel()
仅在输出中有 2 个类(二进制分类)时才有效。但是,您得到的错误表明您有 2 个以上的类(多类分类)。在这种情况下,tn, fp, fn, tp
没有意义。相反,您可以可视化混淆矩阵(例如,使用热图)。