当前位置: 首页 > 知识库问答 >
问题:

Scikit学习值错误:使用混淆矩阵时不支持未知

袁弘化
2023-03-14

我使用混淆矩阵模块将类预测结果与实际值进行比较。

val= ... #shape (3000,1,30) dtype float32
pred = ... #shape (3000,1,30) dtype float32

cnf_matrix = confusion_matrix(val, pred) #ERROR HERE

我得到了这个错误:

回溯(最后一次调用):文件“vis.py”,第757行,在cnf_矩阵=混乱矩阵(y_test,y_pred)文件“C:\Anaconda\envs\nn35\lib\site packages\sklearn\metrics\classification.py”第240行,混乱矩阵y_type,y_true,y_pred=_check_目标(y_true,y_pred)文件中“C:\Anaconda\envs\nn35\lib\site packages\sklearn\metrics\classification。py”,第89行,在_check_targets中,引发ValueError(“{0}不受支持)。格式(y_类型))ValueError:未知不受支持

我到底做错了什么?

共有1个答案

姜正初
2023-03-14

问题是真值的形状和预测必须是(3000,30)而不是(3000,1,30)。所以我用pred=np.reshape(pred,(pred.shape[0],30))重塑它

 类似资料:
  • 问题内容: 是我在尝试运行时收到的错误消息: 是形状如下的: 是一个: 我已经搜索了一些错误消息,但还没有真正找到可以应用的内容。有什么提示吗? 问题答案: 不,您输入的内容必须是预测列表,而不是OHE(一种热编码)。调用您的和,您应该得到期望的结果。

  • 我正在对实际数据和来自分类器的预测数据进行多标签分类。实际数据包括三类(c1、c2和c3),同样,预测数据也包括三类(c1、c2和c3)。数据如下 在多标签分类中,文档可能属于多个类别。在上述数据中,1表示文档属于特定类,0表示文档不属于特定类。 第一行Actual\u数据表示文档属于c1类和c2类,不属于c3类。类似地,第一行predicted\u数据表示文档属于类别c1、c2和c3。 最初我使

  • 我试图弄清楚如何使用神经网络为多标签分类任务生成混淆矩阵。我之前设法使用函数“交集”计算准确性,因为对此我不关心任何排序。 然而,为了计算混淆矩阵,我确实关心预测/标签的索引顺序。由于标签的值始终相同(

  • 我想在weka中进行分类。我正在使用一些方法(随机树、随机森林、决策表、随机子空间...),但它们会给出如下结果。 然而,我希望结果作为准确度和混淆矩阵。我怎样才能得到这样的结果? 注意:当我使用小数据集时,它会以混淆矩阵的形式给出结果。它可以与数据集的大小相关吗?

  • 所有规则中不正确分类(见树)的总和是2097(来自895 700 428 74)。但是混淆矩阵是2121(来自1999 122)。有人能解释一下差异吗?为什么数字不同?

  • 我正在y_test并y_pred混淆矩阵。我的数据用于多标签分类,因此行值是一种热编码。 我的数据有30个标签,但在输入混淆矩阵后,输出只有11行和列,这让我很困惑。我想我应该有一辆30X30的。 它们的格式是numpy数组。(y\u test和y\u pred是我使用dataframe.values将其转换为numpy数组的数据帧) y\U测试。形状 y_test y\u预测。形状 y\u预测