阈值和混淆矩阵

假设您有一个用于检测垃圾邮件的逻辑回归模型, 预测 0 到 1 之间的值,表示 电子邮件是垃圾邮件。预测结果为 0.50 表示电子邮件被 则预测值为 0.75 即表示有 75% 的可能性是该电子邮件是垃圾邮件, 依此类推。

您想在电子邮件应用中部署此模型, 单独的邮件文件夹中但为此,您需要将模型的原始 数值输出(例如,0.75)归入以下两类之一:“垃圾内容”或“非 垃圾内容。”

要进行此类转换,您需要选择一个阈值概率, 分类阈值。 然后分配概率高于阈值的样本 正类别、 要测试的类(此处为 spam)。具有较低权重的 概率分配给负类别 替代类(此处为 not spam)。

点击此处详细了解分类阈值

您可能想知道:如果预测得分等于 分类阈值(例如 0.5 分,其中 分类阈值也为 0.5)?针对此支持请求的处理 取决于为分类选择的特定实现, 模型。例如,Keras 如果得分和阈值, 相同,但其他工具/框架可以处理这种情况 。

例如,假设模型将一封电子邮件评分为 0.99,预测 该邮件有 99% 概率是垃圾邮件, 0.51,即预测其为垃圾内容的可能性为 51%。如果您将 则模型会将这两封电子邮件分类为 垃圾内容。如果您将阈值设为 0.95,则只有评分为 0.99 的电子邮件会 被归类为垃圾内容

虽然 0.5 看起来似乎是一个直观的阈值,但如果 一种错误分类的费用高于另一种,或者 类别不平衡。只有 0.01% 的电子邮件是垃圾邮件或错误举报的电子邮件 不如让垃圾邮件进入收件箱 为模型认为有至少 50% 的可能性属于垃圾邮件的内容添加标签 垃圾内容会产生不良后果

混淆矩阵

概率得分不是真实的,或者 标准答案。 二元分类器的每个输出都有四种可能的结果。 对于垃圾邮件分类器示例,如果您将标准答案布置为列 将模型的预测结果显示为行,下表称为 混淆矩阵是 结果:

实际正值 实际负值
预测为正例 真正例 (TP):垃圾邮件 正确分类为垃圾邮件的电子邮件。这些是垃圾邮件 自动发送到垃圾邮件文件夹。 误报 (FP):非垃圾邮件被错误分类为 垃圾内容。这些是 最终被放入垃圾邮件文件夹中。
预测为负例 错误 negative (FN):被错误分类为非垃圾邮件的垃圾邮件。这些是垃圾内容 电子邮件 被垃圾邮件过滤器拦截并进入收件箱。 真负例 (TN):A 被正确分类为非垃圾邮件的电子邮件。 这些是系统正常发送的电子邮件 收件箱

请注意,每行中的总数表示了所有预测的正例 (TP + FP), 所有预测负例 (FN + TN),无论有效性如何。每个 列给出了所有实数 (TP + FN) 和所有实负例 (FP + TN),而不考虑模型分类。

当实际正类别的总数不接近实际正类别的总数时 则数据集为 不平衡。实例 数据集不均衡的特征可能是有数千张云彩照片, 而您感兴趣的稀有云类型(如卷云) 。

阈值对真正例、假正例和假负例的影响

不同的阈值通常会产生不同的 true 值和 false 值 数量之和。以下视频介绍了 情况。

请尝试自行更改阈值。

此 widget 包含三个玩具数据集:

  • 分开式:正例和负例通常属于同一类 差异很好,大多数正例的分数高于 反例。
  • 不分隔:许多正例的得分低于 而许多负例的得分高于 正例。
  • 不平衡:仅包含几个正类别的样本。

检查您的理解情况

1. 假设有一个钓鱼式攻击或恶意软件分类模型, 钓鱼式攻击和恶意软件网站归为 1 (true) 和 有害网站位于标记为 0 (false) 的类别中。此模型 错误地将合法网站归类为恶意软件。这叫什么?
假正例
误报了一个负面示例(合法网站) 被归类为正面示例(恶意软件网站)。
真正例
真正例为恶意软件网站 被归类为恶意软件
假负例
假负例是指不正确的恶意软件网站 被归类为合法网站。
真负例
真负例是正确的合法网站 被归类为合法网站。
2. 一般来说,如果将假正例 分类阈值增加的情况?真正例呢?实验 调整其状态
真正例和假正例都会降低。
随着阈值提高,模型可能会预测 总的来说,正例和假正例越少。包含 0 .9999 的阈值,则只有在系统认为电子邮件符合 概率至少达到 99.99%, 不太可能错误标记合法电子邮件,但也可能会错过实际电子邮件 垃圾邮件。
真正例和假正例都会增加。
使用上方的滑块,尝试将阈值设置为 0.1, 然后将其拖到 0.9假正例数量的变化 和真正例?
真正例数量会增加。假正例数量减少了。
使用上方的滑块,尝试将阈值设置为 0.1, 然后将其拖到 0.9假正例数量的变化 和真正例?
3. 一般来说,如果将假负例 分类阈值增加的情况?真负例呢?实验 调整其状态
真负例和假负例都会增加。
随着阈值提高,模型可能会预测 增加的负例数量,包括真和假。当阈值非常高时 几乎所有电子邮件(包括垃圾邮件和非垃圾邮件)都会被归类为非垃圾邮件。
真负例和假负例都会降低。
使用上方的滑块,尝试将阈值设置为 0.1, 然后将其拖到 0.9假负例数量的变化 和真负例?
真负例增加。假负例减少。
使用上方的滑块,尝试将阈值设置为 0.1, 然后将其拖到 0.9假负例数量的变化 和真负例?