【发布时间】:2019-05-24 04:44:46
【问题描述】:
我正在尝试评估几个 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 上设置了这两个数据帧。它们都是Series 和sizes (3224,) 类型。
我能看到的唯一问题是索引不是连续的,不是从 0 开始,也不是以 3223 结束。为了便于理解,请看下图。
【问题讨论】:
-
如果 DataTest 是 pandas 数据框,则不能将混淆矩阵分配给列,因为根据定义,混淆矩阵将是二维的。您可以使用
pandas.crosstab在真实值和预测值之间生成混淆矩阵。您还可以使用重置索引来比较相同长度的系列。 -
对,我太专注于系列长度而忽略了显而易见的,谢谢@iamchoosinganame。你现在能帮我结束这个问题吗?
标签: python pandas confusion-matrix