我正在尝试使用 confusion_matrix 函数,如下所示:

tn, fp, fn, tp = confusion_matrix(y_true, y_predict).ravel()
y_truey_predict 都是列表。当我返回它们的形状时,我得到: (71,)

但是,对于上述语句,我收到以下错误:
ValueError: too many values to unpack

我不确定是否是因为 (71,) 中的第二个(空)维度?如果这是这里的问题,我不确定如何删除它。

有什么想法吗?

谢谢。

最佳答案

如果输出数量是确定的,您只能动态分配多个变量。如果将 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

关于python - 混淆矩阵 - 解包的值太多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49055410/

10-11 22:03