Appearance
淘天 Problem 4:信用卡欺诈检测
- 来源:
noai-mis/淘天/Problem 4 + 6 - 类型:Tabular ML
- 原始资料:
lesson.ipynb、NOAI竞赛实战课程大纲最终版.pdf - 题面完整性:教学 notebook 完整
- 解法资料完整性:完整教学材料
题面大意
基于信用卡交易数据识别欺诈交易。数据极端不平衡:284807 笔交易中只有 492 笔欺诈,正例比例约 0.17%。课程大纲将本题与蘑菇毒性分类一起作为“不平衡分类与数据质量”课程:先用它说明 accuracy 陷阱,再比较不平衡处理方法和 PR 曲线。
数据特点
正例极少,永远预测“正常交易”也能获得约 99.83% accuracy,但召回为 0。特征多为数值,可能已经经过 PCA 或匿名化。业务上漏报欺诈比误报更严重。
考点
核心考点是不平衡分类指标和处理方法。模型选择不能看 accuracy,而要看 recall、precision、F1、PR-AUC 和业务阈值。大纲特别强调:要构造一个 accuracy 极高但 recall 为 0 的案例,用它解释为什么 99.9% 准确率可能完全识别不出正样本。
涉及知识点
- TP/TN/FP/FN。
- Precision、Recall、F1、ROC-AUC、PR-AUC。
- class_weight。
- 过采样/欠采样/SMOTE。
- 阈值移动。
- CTGAN 合成少数类样本。
解法思路
按课程大纲,第一步先建立永远预测负类的 dummy baseline:它会得到极高 accuracy,但欺诈 recall 为 0。这个结果用于锁定评价指标,后续所有模型都必须报告 precision、recall、F1、PR-AUC,并绘制 PR 曲线。
第二步做分层训练/验证切分,训练 Logistic Regression、RandomForest 或 GBDT 等 baseline。然后分别应用三类不平衡处理:过采样/SMOTE、类别权重调整、决策阈值调优。三种方法要在同一个验证集上比较 PR 曲线,而不是只比较单个 accuracy。实际选择方案时,应先确定业务目标,例如“尽量保证召回,同时控制误报”,再从 PR 曲线上选择阈值。
第三步检查数据质量和泄露风险。虽然本题重点是不平衡,但大纲把它和蘑菇题放在同一节,要求理解数据泄露如何人为抬高 AUC。因此在建模前后都应检查特征是否包含后验信息、采样是否只发生在训练集、验证集是否保持原始分布。
可选/多种解法
class_weight:简单稳,不改变数据。
随机过采样/SMOTE:增加少数类供给。
阈值优化:直接面向业务成本调 precision-recall tradeoff。
PR 曲线比较:课程推荐的统一评估方式,可直观看到不同方法的取舍。
特殊技巧
PR-AUC 比 ROC-AUC 更能反映极端不平衡下的正类识别质量。采样必须只作用于训练集,不能对验证/测试集采样。阈值 0.5 通常不是欺诈检测最优阈值。故意构造“高 accuracy、零 recall”的 baseline 是理解本题的关键实验。
调参优化
题解和大纲的调参重点是 class_weight、采样和阈值移动。调参应以 PR-AUC、F1 或业务召回为主,扫描正类权重、过采样比例、SMOTE 邻居数、下采样比例、模型正则强度、树深和概率阈值。阈值建议按目标召回率或最大 F1 选择,而不是固定 0.5。由于欺诈样本极少,验证集必须分层且保持原始分布;每次调参都要同时报告误报数量,避免只提高召回导致不可用。
注意事项
合成样本不能泄漏到验证/测试。评价时要同时报告召回和误报,单一 accuracy 没有意义。CTGAN 是进阶可选依赖,不应成为基础流程必要条件。
推广意义
欺诈检测是所有不平衡分类任务的代表。这里的指标观念可直接迁移到医疗筛查、异常检测、风控和安全告警。