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

Posted

技术标签:

【中文标题】Scikit-learn ValueError:使用混淆矩阵时不支持未知【英文标题】:Scikit-learn ValueError: unknown is not supported when using confusion matrix 【发布时间】:2018-01-15 00:55:46 【问题描述】:

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

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

cnf_matrix = confusion_matrix(val, pred) #ERROR HERE

我收到了这个错误:

Traceback(最近一次调用最后一次):文件“vis.py”,第 757 行,在 cnf_matrix=confusion_matrix(y_test, y_pred) 文件 "C:\Anaconda\envs\nn35\lib\site-packages\sklearn\metrics\classification.py", 第 240 行,在混淆矩阵中 y_type, y_true, y_pred = _check_targets(y_true, y_pred) 文件 "C:\Anaconda\envs\nn35\lib\site-packages\sklearn\metrics\classification.py", 第 89 行,在 _check_targets 中 raise ValueError("0 is not supported".format(y_type)) ValueError: unknown is not supported

我做错了什么?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Scikit-learn ValueError:使用混淆矩阵时不支持未知的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn : ValueError: no enough values to unpack (expected 2, got 1)

在管道中使用时带有 scikit-learn PLSRegression 的 ValueError

使用 scikit-learn 预测单个值会导致 ValueError

在 Python 中实现逻辑回归时 Scikit-learn ValueError

ValueError:使用 GaussianNB 在 scikit-learn (sklearn) 中设置具有序列的数组元素

使用 scikit-learn python 的线性 SVM 时出现 ValueError