返回列表

19th Place Solution summary

343. IEEE-CIS Fraud Detection | ieee-fraud-detection

开始: 2019-07-15 结束: 2019-10-03 反欺诈与反洗钱 数据算法赛
第19名方案总结

第19名方案总结

作者: Takoi (队友: e-toppo, kurupical, pondel)
比赛: IEEE-CIS Fraud Detection
排名: 19 / 6383 (金牌)

简介

首先,我要感谢 Kaggle 和主办方举办了如此有趣的比赛!我还要感谢我出色的队友们:e-toppokurupicalpondel

我们的队名“クソザコやねん”在日语中意思是“我们非常非常非常弱”。但是,在比赛结束时,我们的队伍证明是一支非常强的队伍,并最终获得了金牌。这就是为什么我们将队名改为“クソザコちゃうねん”,意思是“我们并不弱”。

顺便说一句,我们是在名为 atmaCup 的现场比赛中相识的,并在这次比赛的社交聚会上组建了团队。下一届 atmaCup 将于 2019 年 11 月 23 日在日本大阪举行。欢迎加入我们!

模型流程

Model Pipeline

特征工程

  • 用户ID (UserID):将卡特征(card features)与 TransactionDT 前 D1 天的日期结合生成。
  • 按用户ID聚合:统计 count(计数)、mean(均值)、var(方差)。
    • C1-C14
    • D1-D15
    • TransactionAmt 等
  • 最大/最小值:在相似的 C、V 特征之间计算最大/最小值及最大/最小列。
    • 示例:
      • V212, V274, V317
      • V213, V275, V318
      • V167~V171, C2
  • 特征分解:对 D、C、V 特征使用 PCA 进行分解。
  • 缺失值模式:针对 D、C、V、M 特征的缺失值模式。
  • 12月标志:isDecember Flag。

验证策略

起初我们使用无打乱的分层5折交叉验证进行验证。后来为了避免剧烈的波动,我们开始使用时间序列分割。我们的时间序列分割有7折。| 表示训练集/验证集的分割点。

 1) 0 1 2 3 | 4
 2) 0 1 2 3 4 | 5
 3) 0 1 2 3 4 5 | 6
 4) 使用在第3步中早停轮数的1.1倍,在所有数据上进行训练
    

融合:使用加权平均:1) * 0.1 + 2) * 0.1 + 3) * 0.25 + 4) * 0.55。

模型与集成

在本次比赛中,为了防止波动风险(虽然最终没有发生),我们决定采用以下两种不同的策略来选择最终提交方案:

  • 提交1:高 LB 模型(幻灯片中的完整模型)。
  • 提交2:保守模型(幻灯片中 k2_samp 模型的提交)。

最终,我们建立了10个模型(我们将更改验证方法或 k2_samp 视为同一模型),包括仅包含 ProductCD=W 的模型、不含 MAGIC 特征的模型等。我们最好的单模型 LGBM 得分为 LB: 0.9588。

关于融合权重的优化,我们使用了 Home Credit Default Risk 第二名方案 中使用的 Spicy Nelder-Mead 方法。我们决定不对基于时间序列模型和基于分层模型的权重进行优化,而是选择了以下权重作为最终提交:(0.4 * timeseries + 0.4 * stratified + 0.2 * timeseries(k2_samp))。