我正在尝试使用 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)
我该如何解决这个问题?
最佳答案
您可以将预测标签和真实标签转换为 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/