如何从分类器的混淆矩阵中得出置信区间?

机器算法验证 分类 置信区间 不平衡类 多级 混淆矩阵
2022-03-21 07:10:49

我正在使用 k 折交叉验证为分类器生成混淆矩阵。当针对一堆输入数据运行时,我需要计算每个类的预测次数的 95% 置信区间。

因此,如果我在通过分类器运行 2000 个样本后的输出是:

Class A: 100
Class B: 1400
Class C: 500

我希望能够报告:

Class A: 100   +- (some value for a 95% interval)
Class B: 1400  +- (some value for a 95% interval)
Class C: 500   +- (some value for a 95% interval)

每个类的间隔将取决于分类器对该类的好坏程度,如混淆矩阵所示。

如果这有意义,请给我一些提示。否则请指点我一个更好的方向。我需要一些简单的东西来向不成熟的用户报告。

3个回答

这个问题很有道理。需要特别注意的是,列联表是交叉验证的结果。Witten 等人的《数据挖掘》一书(基于 Weka)讨论了用于(重复)交叉验证的修改 T 检验。T 检验隐含地定义了置信区间。鉴于我们有一个 CV 并且每个单元格都是一个平均统计量,每个单元格确实存在 CI,尽管它们最常被计算为边际统计量,并且直接或通过那些用于整个表的统计量。

在下面的论文中,我探讨了适用于相关性的置信区间的各种概括对有用的多类案例的适应,并使用蒙特卡罗模拟进行验证,但很难给出明确的建议,因为在某些情况下相同的度量可能过于保守,并且在其他方面不够保守,但在一系列参数化的模拟中建议和说明了一个合理的选择:

评估:从精度、召回和 F-measure 到 ROC、知情度、标记性和相关性 DMW Powers International Journal of Machine Learning Technology 2 (1), 37-63

可以从列联表(对角线条目除以适当的边际总和)及其倒数(通过对角线与边际的补码 - 或简单地转换为二进制表)计算召回率和精度,并定义基于置信区间关于 Wald 或 Wilson 技术。Agresti 等人为 alpha=0.05 的正态分布假设引入了一个有用的经验法则,即添加 2 个正例和 2 个负例。Tony Cai 表明这适用于二项式分布,并给出了负二项式(此处不适用)和泊松(可以说适用,并在我上面的一些推导中用作假设)的修改版本。

泊松修正可能在这里最适用(考虑另一个 PpRr 预测/真实对何时可能到达),因为它只关注感兴趣的类别,并且不会在其他类别中分布错误/消极性。在计算与该小区相关的统计数据之前,它会向该小区添加另外两个到达。

Wei Pan (2001) 基于二项分布和 T 检验得出了一些其他可能的度量。

蔡论文在这里: http ://www-stat.wharton.upenn.edu/~tcai/paper/Plugin-Exp-CI.pdf

我的论文在这里: http ://dspace2.flinders.edu.au/xmlui/bitstream/handle/2328/27165/Powers%20Evaluation.pdf

这是我仍在探索的东西 - 因此会定期返回以查看该主题是否有任何新的/有用的贡献......

我看不到列联表(元素)的置信区间值。我建议改为考虑 ROC 曲线,因为置信度取决于每个预测,而不是每个类别。那是假设您有一个比简单的正面/负面信息更丰富的模型。

考虑以 50% 概率的标准阈值进行逻辑回归来确定实例为正。就列联表而言,51% 和 99% 的概率被视为相同,即使模型的输出清楚地表明它们不是。精度的置信区间(例如)会将所有这些信息抽象掉。

我同意其他人。如果您希望它有意义,则必须为特定个人提供“间隔”。例如,您可以将最可能的类别列表作为“CI”,而不仅仅是该观察中最可能的类别。但是,如果您没有每次观察的信息,那有什么意义呢?

编辑:对于“最有可能的类别”,我的意思是例如那些概率总和高达 95% 的类别。