在归一化混淆矩阵中获取 2 的值

数据挖掘 Python 混淆矩阵
2022-03-04 09:05:04

我用python创建了混淆矩阵,得到了让我担心的奇怪结果:

在此处输入图像描述

如您所见,我的值为 2,如果我理解正确,归一化矩阵的值不能高于 1。而且,某些列的总和不是 1。

这就是我创建这个矩阵的方式:

df_confusion = pd.crosstab(df['labels'], df['prediction'])
df_conf_norm = df_confusion / df_confusion.sum(axis=1)

然后我只是绘制它。

我的问题是 - 是否有可能获得 2 的值?列的总和是否有意义不是 1?我有错吗?如果正确,有什么可以解释的?

编辑 在此处输入图像描述

1个回答

切换轴:

# Build the table
confusion_table = pd.crosstab(df["prediction"], df["labels"])

# Normalise
confusion_table = (confusion_table / consufion_table.sum(0))

# Verify
print(confusion_table.sum())

或者,您可以使用confusion_table.divideaxis参数:https ://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.divide.html