Python混淆矩阵长度

时间:2019-05-23 20:19:43

标签: python pandas confusion-matrix

我正在尝试评估多个KNN分类器的准确性和性能。

DataTest["ConfM_K30_ST"] = confusion_matrix(
    DataTest["ST_Class"], 
    DataTest["KNN_K30_ST"]
    )        

aux = DataTest["ST_Class"]
aux1 = DataTest["KNN_K30_ST"]

在尝试将预测结果与原始结果进行比较时,出现以下错误:

ValueError: Length of values does not match length of index

DataTest是我的DataFrame,其中包含20%的数据。在此示例中,标记数据为"ST_Class",预测数据为"KNN_K30_ST"

为了验证发生了什么,我在aux和aux1上设置了这两个数据帧。它们均为Seriessizes (3224,)类型。

我能看到的唯一问题是索引不是连续的,不是以0开头也不是以3223结尾。为了便于理解,请参见下图。

链接:https://i.imgur.com/Splhr62.png

2 个答案:

答案 0 :(得分:0)

我看到的唯一错误是您正在尝试将confusion matrix作为column存储在dataframe中。由于大小不匹配,这是不可能的。

这是一个小样本

df1
   a
0  1
2  1
4  1

df2
   a
1  0
3  1
5  0

# Output from the confusion matrix
confusion_matrix(df1, df2)
array([[0, 0],
       [2, 1]])

答案 1 :(得分:0)

正如建议的那样,我很明显地试图将混淆矩阵存储在DataFrame中。 我的解决方案是将其设置在字典中。

谢谢大家的快速回复!