Python 混淆矩阵长度

Python Confusion Matrix Length

我正在尝试评估几个 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 结束。为了便于理解,请参见下图。

Link: https://i.imgur.com/Splhr62.png

我能看到的唯一错误是您试图将 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]])

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

谢谢大家的快速回复!