通过抛硬币组合分类器

机器算法验证 机器学习 可能性 数据可视化 分类
2022-02-14 13:12:45

我正在学习一门机器学习课程,讲座幻灯片包含我发现与推荐书籍相矛盾的信息。

问题如下:有三个分类器:

  • 分类器 A在阈值的较低范围内提供更好的性能,
  • 分类器 B在较高的阈值范围内提供更好的性能,
  • 分类器 C我们通过翻转 p 硬币并从两个分类器中进行选择得到的结果。

从 ROC 曲线上看,分类器 C 的性能如何?

讲座幻灯片指出,只要掷硬币,我们就可以得到分类器 A 和 B 的 ROC 曲线的神奇“凸包”。

我不明白这一点。抛硬币,我们如何获取信息?

讲座幻灯片

讲座幻灯片

书上说了什么

另一方面,推荐的书(Ian H. Witten、Eibe Frank 和 Mark A. Hall 的《数据挖掘...》)指出:

要看到这一点,请为方法 A 选择一个特定的概率截止值,分别给出 tA 和 fA 的真阳性率和假阳性率,并为方法 B 选择另一个截止值,给出 tB 和 fB。如果您以概率 p 和 q 随机使用这两种方案,其中 p + q = 1,那么您将获得 p 的真阳性率和假阳性率。tA + q 。tB 和 p。fA + q 。fB。这表示位于连接点 (tA, fA) 和 (tB, fB) 的直线上的一个点,通过改变 p 和 q,您可以绘制出这两点之间的整条线。

在我的理解中,这本书所说的是,要真正获得信息并到达凸包,我们需要做一些比简单地翻转 p 硬币更高级的事情。

AFAIK,正确的方法(如书中所建议)如下:

  1. 我们应该找到分类器 A 的最佳阈值 Oa
  2. 我们应该找到分类器 B 的最佳阈值 Ob
  3. 定义 C 如下:

    • 如果 t < Oa,则使用分类器 A 和 t
    • 如果 t > Ob,使用分类器 B 和 t
    • 如果 Oa < t < Ob,则在分类器 A 与 Oa 和 B 与 Ob 之间进行选择,概率为我们在 Oa 和 Ob 之间的线性组合。

它是否正确?如果是,则与幻灯片所建议的内容相比,存在一些关键差异。

  1. 这不是简单的抛硬币,而是一种更高级的算法,需要根据我们所处的区域手动定义点和选择。
  2. 它从不使用阈值介于 Oa 和 Ob 之间的分类器 A 和 B。

如果我的理解不正确,您能否向我解释这个问题以及理解它的正确方法是什么?

如果我们只是像幻灯片所暗示的那样简单地翻转一个 p 硬币会发生什么?我认为我们会得到一条介于 A 和 B 之间的 ROC 曲线,但在给定点永远不会比更好的曲线“更好”。

据我所知,我真的不明白幻灯片是如何正确的。左侧的概率计算对我来说没有意义。

更新: 找到发明凸包方法的原作者写的文章: http ://www.bmva.org/bmvc/1998/pdf/p082.pdf

2个回答

(已编辑)

讲座幻灯片是正确的。

方法 A 有一个“最佳点”,分别给出 (TPA, FPA in the graph) 的真阳性率和假阳性率。该点对应于一个阈值,或者更一般地[*] 是 A 的最佳决策边界。B 也是如此。(但阈值和边界不相关)。

可以看出,分类器 A 在偏好“最小化误报”(保守策略)下表现良好,而分类器 B 在我们想要“最大化真阳性”(急切策略)时表现良好。

您的第一个问题的答案基本上是肯定的,只是硬币的概率(在某种意义上)是任意的。最后的分类器将是:

如果x属于“A的最佳接受区域”(保守),使用那个分类器A(即:接受它)如果x属于“B 的最优拒绝区域”(渴望),在其他地方使用分类器 B(即拒绝它),以概率抛硬币p并使用分类器 A 或 B。

(更正:实际上,讲座完全正确,我们无论如何都可以抛硬币。见图表)

您可以使用任何固定的p在 (0,1) 范围内,这取决于您是要更保守还是更不保守,即,您是想更靠近某个点还是在中间。

[*] 你在这里应该是一般的:如果你从一个单一的标量阈值的角度来思考,这一切都没有意义;具有基于阈值的分类器的一维特征不会为您提供足够的自由度来使用不同的分类器作为 A 和 B,当自由参数(决策边界 = 阈值)变化时,它们会沿着不同的曲线执行。换句话说:A和B被称为“方法”或“系统”,而不是“分类器”;因为 A 是整个分类器家族,由确定决策边界的某个参数(标量)参数化,而不仅仅是一个标量]

我添加了一些图表以使其更清晰:

在此处输入图像描述

假设一个二维特征,图表显示了一些样本,绿色点是“好”点,红色点是“坏”点。假设方法 A 有一个可调参数t(阈值,偏移量,偏差),较高的值t使分类器更渴望接受(“是”)。橙色线对应于该方法的边界决策,对于不同的值t. 可以看出,这种方法(实际上是分类器家族)对于tA=2,从某种意义上说,对于中等数量的真阳性,它几乎没有假阳性。相比之下,方法 B(蓝色),它有自己的可调参数t(与 A 无关)表现特别好(tB=4) 在高接受区域:实心蓝线达到高真阳性率。

那么,在这种情况下,可以说填充的橙色线是“最佳 A 分类器”(在其家族中),对于 B 也是如此。但无法判断橙色线是否比蓝色线更好:一个执行当我们将高成本分配给误报时更好,另一个当误报成本更高时。

在此处输入图像描述

现在,这两种分类器可能对我们的需求过于极端,我们希望这两种类型的错误具有相似的权重。我们更愿意,而不是使用分类器 A(橙色点)或 B(蓝色点)来获得介于它们之间的性能。正如课程所说,只需掷硬币并随机选择一个分类器即可获得该结果。

抛硬币,我们如何获取信息?

我们不获取信息。我们新的随机分类器不仅比 A 或 B“更好”,它的性能是 A 和 B 的平均值,在分配给每种错误类型的成本方面。这对我们有利也可能不利,这取决于我们的成本。

AFAIK,正确的方法(如书中所建议)如下......这是正确的吗?

并不真地。正确的方法很简单:用概率掷硬币p,选择一个分类器(最优 A 或最优 B)并使用该分类器进行分类。

我同意你的推理。如果您在 A 点和 B 点之间使用抛硬币的分类器来选择一个分类器,那么曲线上的点将始终低于更好的分类器,高于较差的分类器,而不可能高于两者!图一定有问题。在 2 条 ROC 曲线相交的点处,随机选择算法将具有与两种算法相同的性能。它不会像图表描述的那样在它之上。