概述
重新采样会重新平衡训练数据,因此模型实际上学会了发现少数。
深入探讨
当类别存在偏差时,模型可以通过始终预测大多数并且从不发现任何欺诈行为来达到 99.9% 的准确率,但这是无用的。重采样通过两种主要方式修复训练分布。过采样会重复或合成少数样本 - 经典的 SMOTE(合成少数过采样技术)通过在少数样本与其最近的少数样本邻居之间进行插值而不是复制它们来创建新点。相反,欠采样会丢弃大多数示例(随机地或通过 Tomek links 或 NearMiss 等方法巧妙地丢弃)以均匀分布,但代价是丢弃数据。避免接触数据的替代方案包括类别加权(在损失函数中更多地惩罚少数错误)和在训练后调整决策阈值。
现实世界的实施
训练信用卡欺诈检测器,其中真实欺诈远低于交易的 1%,使用 SMOTE 放大罕见的欺诈案例
为仅少数患者出现的罕见疾病建立医学模型,应用类别权重,因此错过的病例将受到严厉处罚
检测生产线上的缺陷物品,几乎所有产品都通过检查,对“好”物品进行抽样以平衡培训
在以正常流量为主的网络安全日志中标记罕见的网络入侵,并使用 Precision-Recall AUC 而不是准确性进行评估
类不平衡和重采样的未来
机器学习管道内的重采样越来越自动化,像不平衡学习这样的库直接集成到交叉验证中。研究正在转向成本敏感的学习和定制的损失函数(例如焦点损失,它会降低简单多数示例的权重),这些函数通常优于深度网络上的粗略重采样。对于表格和图像数据,合成现实少数样本的生成模型正在成为 SMOTE 式插值的更复杂的后继者。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是类不平衡和重采样?
类别不平衡是指一种结果的数量远远超过另一种结果(例如 99.9% 的合法交易与 0.1% 的欺诈交易),这会欺骗模型忽略罕见但重要的类别。重新采样会重新平衡训练数据,因此模型实际上学会了发现少数。
为什么简单准确率对于高度不平衡的分类问题来说是一个糟糕的指标?
如果 99.9% 的情况都是阴性,则始终预测阴性的模型在捕获零阳性的同时获得 99.9% 的准确率,因此准确度隐藏了罕见类别的完全失败。
SMOTE 是做什么的?
SMOTE(合成少数派过采样技术)通过在少数派点与其最近的少数派邻居之间进行插值来创建新的少数派示例,而不是简单地复制它们。
哪种方法可以在不改变训练示例数量的情况下处理不平衡?
类别加权不会影响数据,而是使损失函数对少数类别的错误进行更严厉的惩罚。
在将数据拆分为训练集和测试集之前应用过采样的主要风险是什么?
分割之前的重新采样会让训练集和测试集中出现几乎相同的少数点,从而泄漏信息并产生过于乐观、不切实际的性能。
随机欠采样的主要缺点是什么?
欠采样通过丢弃多数示例来平衡类别,这可能会丢弃信息数据并损害模型学习多数类别的能力。