如何正确比较这两个混淆矩阵?

数据挖掘 机器学习 Python nlp nltk
2022-02-21 07:52:47

我在电影评论数据库中使用了 Vader,一种用于社交媒体的情绪分析工具。这两个混淆矩阵在 vader.py 算法中有所不同,因为第一个来自 nltk:

在此处输入图像描述

第二个来自 Vader 在 github 上的原始代码,包括对否定词等的修复。

在此处输入图像描述

我想知道如何正确比较两者,因为我真的无法阅读它们。似乎它们之间没有太大区别,我不明白这里错误的根源是什么。

1个回答

首先,关于解释这些混淆矩阵:每行之和为 1,这意味着每个值都是条件概率p( predicted label | true label ),即给定真实标签成为特定预测标签的概率。示例:两个矩阵中左上角的单元格都是 0.01,这意味着当真实标签为 5 时,系统预测标签 1 的概率为 1%。

这两个混淆矩阵显示了两个不同系统的预测结果这意味着一般来说,没有一种是正确的,另一种是错误的,只有两种不同的方法来预测可能导致不同类型错误的标签。

  • 对角线显示真阳性情况,即预测标签与真实标签相同的情况(这很重要,因为这些是“正确”的情况)。概率显示对角线上的两个系统之间的差异非常小,标签 3 和 4 的顶部系统稍微好一点,标签 5 的底部系统稍微好一点。
  • 一般来说,重要的是不要只看对角线,尤其是序数值,因为如果预测值远离真实值,那么它比接近它的错误更严重。示例:如果真实值为 4,则系统预测 3 比预测 1 更好(两者都是错误,但后者更糟)。然而,这两个系统之间的差异也很小,它们似乎具有非常相似的行为。

为了定量总结和比较两个系统的性能,混淆矩阵过于复杂。通常,人们会使用适当的评估措施,例如微观或宏观 f 分数(分类评估)或平均绝对误差(回归评估)。