ValueError:混淆矩阵不支持多标签指示符

Posted

技术标签:

【中文标题】ValueError:混淆矩阵不支持多标签指示符【英文标题】:ValueError: multilabel-indicator is not supported for confusion matrix 【发布时间】:2019-02-12 19:20:34 【问题描述】:

在我的二元分类问题中尝试使用混淆矩阵时遇到此错误。 YYhat 都是 numpy 数组。我已尝试将 .argmax 作为建议的解决方案 - 我不再收到错误,但输出不是我知道的混淆矩阵。

Accuracy: 0.9982449999999999
Accuracy: 0.9983374013937532

shape of y =  (1, 200000)
shape of yhat =  (1, 200000)

错误

 ValueError                                Traceback (most recent call last) <ipython-input-13-ebb660b4585a> in <module>()
     12 print("shape of yhat = ", yhat.shape)
     13 
---> 14 cm = confusion_matrix(y,yhat)
     15 
     16 print("confusion matrix = ", cm)

/anaconda3/lib/python3.6/site-packages/sklearn/metrics/classification.py in confusion_matrix(y_true, y_pred, labels, sample_weight)
    250     y_type, y_true, y_pred = _check_targets(y_true, y_pred)
    251     if y_type not in ("binary", "multiclass"):
--> 252         raise ValueError("%s is not supported" % y_type)
    253 
    254     if labels is None:

ValueError: multilabel-indicator is not supported

【问题讨论】:

嗨!欢迎来到 ***!我认为如果你有正确的格式,你可以大大改善你的帖子。此外,您应该考虑提供Minimal Complete Verifiable Example (MCVE) 嗨,谢谢。你可以说我是堆栈溢出以及 NN 和 Python 的新手。该代码非常简单,并在错误消息中进行了概述:cm = chaos_matrix(y,yhat)。我在两个熟化的阵列上对其进行了测试,并且有效。但是,不能解决我真正的问题。 @SubhashDesai 欢迎使用 ***,以后你也应该包含代码 【参考方案1】:

如下添加你的代码

cm = confusion_matrix(y.argmax(axis=1),yhat.argmax(axis=1))

之前问过here

【讨论】:

以上是关于ValueError:混淆矩阵不支持多标签指示符的主要内容,如果未能解决你的问题,请参考以下文章

roc_curve() sklearn 的“ValueError:不支持多标签指示符格式”

Scikit-learn ValueError:使用混淆矩阵时不支持未知

多类多标签混淆矩阵,其中预测和标签是多热向量

ValueError:无法处理多标签指示符和二进制的混合

混淆矩阵 - ValueError:发现样本数量不一致的输入变量

为多类多标签分类构建混淆矩阵