python - 混淆矩阵取值错误

标签 python scikit-learn confusion-matrix valueerror

我正在尝试使用 sci-kit learn 为癫痫数据集创建一个混淆矩阵 https://archive.ics.uci.edu/ml/datasets/Epileptic+Seizure+Recognition

准备完毕后,进行交叉验证和建模,我得到的结果如下(我标记了屏幕截图):

现在,当我想获得混淆矩阵时,我收到此错误:

    from sklearn.metrics import confusion_matrix
    conf = confusion_matrix(pred["y"], pred["PredictedLabel"])
    print(conf)

enter image description here

我该如何解决这个问题?

最佳答案

您可以将预测标签和真实标签转换为 str:

conf = confusion_matrix(pred["y"].astype(str), pred["PredictedLabel"].astype(str))

尝试重新创建类似的问题,请考虑以下情况,其中预测和真实是不同类型:

import pandas as pd
from sklearn.metrics import confusion_matrix

pred = pd.DataFrame()
pred["y"] = [1,2,3]
pred["PredictedLabel"] = ['1','2','3']
conf = confusion_matrix(pred["y"], pred["PredictedLabel"])
print(conf)

它将给出错误:ValueError:标签输入类型的混合(字符串和数字)

如果将它们都转换为 str 类型(您也可以使用其他类型作为 int 或 float,但对于预测标签和真实标签,两者必须相同):

import pandas as pd
from sklearn.metrics import confusion_matrix

pred = pd.DataFrame()
pred["y"] = [1,2,3]
pred["PredictedLabel"] = ['1','2','3']
conf = confusion_matrix(pred["y"].astype(str), pred["PredictedLabel"].astype(str))
print(conf)

结果:

[[1 0 0]
 [0 1 0]
 [0 0 1]]

关于python - 混淆矩阵取值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969788/

相关文章:

python - scikit学习逻辑回归模型tfidfvectorizer

python - 如何使用 Tensorflow 创建预测标签和真实标签的混淆矩阵?

python - 混淆矩阵呈现一些空单元格

python - 来自文本文件的小写字母

python - 将标签分配给Django ORM多对多关系中的对象

python - 从网页表格中抓取值

python - 如何在 python 中执行相当于 "cp -r"的 linux

python - 线性判别分析变换函数

python - CountVectorizer 值在分类器中单独工作,在添加其他功能时无法工作

machine-learning - 多类情况的混淆矩阵,所有评估指标的估计