我训练了六个用于欺诈检测的模型,最好的一个尚未投入生产

最后一年的项目教会了我关于评估指标和生产决策之间的差距我训练了六个用于欺诈检测的模型,但最好的一个没有投入生产的帖子首先出现在《走向数据科学》上。

来源:走向数据科学

在我最后一年的项目中,我使用相同的欺诈数据集训练了六个不同的模型,记录了每次训练运行,并选出了一个获胜者。目前,支持当前部署的模型并不是获胜模型。

NairaShield 是一个基于人工智能的欺诈检测系统,是我作为银行交易最后一年的项目构建的。它一开始是一个简单的分类问题,最终变得更接近于决策支持管道,部分原因是这种不匹配,部分原因是我的主管对简单的版本不满意。

他真的很喜欢这个项目,但有一点是:他看过我一个同学的一个反洗钱项目,觉得两者太相似了。

我很努力地解释建模问题是不同的,但他仍然不相信。

在他告诉我需要做什么来解决手头的问题之前,我们就这个问题发生了很多争论。这就是系统最终拥有完整的监管审查工作流程和第二个模型系列的原因,否则它不会有。这也是本文的大部分内容。

这是我几周前离开学校以来正确写的第一件事,结束了两个月的写作时间,而课程作业和这个项目吞噬了其他一切,所以带着最有实际展示价值的项目回来感觉是正确的。

合并两个不一致的数据集

一旦双方都通过验证,将它们映射到一个共享结构中,如下所示:

df_paysim_aligned["transaction_id"] = "PAYSIM_" + df_paysim["step"].astype(str) + "_" + df_paysim.index.astype(str)df_paysim_aligned["channel"] = df_paysim["type"].astype(str)product_map = {"W": "CARD_WEB", "H": "CARD_HOST", "C": "CARD_PHONE", "S": "CARD_STORE", "R": "CARD_RECURRING"}df_ieee_aligned["channel"] = df_ieee["ProductCD"].map(product_map).fillna("CARD_OTHER")

我的主管真正想要什么

编号