使用机器学习进行信用卡欺诈检测

使用机器学习进行信用卡欺诈检测

Photo by 纳赫勒·阿卜杜勒·哈迪 on 不飞溅

对问题的理解

仅在巴西,从 2022 年 1 月到 7 月, 超过 500 万起未遂犯罪 在互联网上,与 2021 年的 250 万相比,增长了 97%。转化为价值观, 金融诈骗 应在 2022 年达到 25 亿雷亚尔大关。

在这些欺诈行为中,涉及信用卡的欺诈行为非常重要,因为不被发现将给消费者和金融机构带来相当大的损失。

有多种情况可能导致欺诈者成功进行欺诈性信用卡付款。尽管已知某些模式比其他模式更频繁地发生,但目前还没有关于信用卡欺诈类型的明确分类法。

这是一场猫捉老鼠的游戏,欺诈模式会随着时间而改变。

另一个需要考虑的因素是误报的数量,也就是说,当您尝试购物并被预防性封锁时——这可能会造成压力和尴尬。

由于所有这些原因,通过人工智能进行欺诈检测领域的投资每年都在增长,这代表着一个巨大的机会 数据科学 .

拥有大量数据作为历史基础,机器学习算法仅比以前的算法好一点,就可以节省数百万雷亚尔。这就是挑战,越来越多地改进算法的使用来抑制或防止欺诈交易。

在本文中,我们将解决信用卡欺诈问题,这是银行和金融科技公司等金融机构主要关注的问题之一。

该项目遵循了开发流程 CRISP-DM **** 从了解问题开始,然后进入评估阶段。

所有项目代码都可用 这里 .

了解数据

该项目中使用的数据由一些欧洲信用卡公司提供。 ○ 数据集 代表在两天内发生的金融业务,在近 29 万笔交易中分类了 492 起欺诈行为。

这是一个极 不平衡 ,其中欺诈仅占总数的 0.17%。

另一个有趣的细节是 特征 都是数字,并且被错误描述(由于隐私和安全问题)。因此,列名由 [V1,V2,V3...,V28] 表示

在原始数据页面 , 它还被告知变量经历了称为 主成分分析 ( 主成分分析 — PCA)。

PCA 技术允许降维,同时保留尽可能多的信息。为了实现这一点,算法找到了一组新的特征——所谓的 成分 .

这些分量小于或等于原始变量。在这个项目中,PCA 转换找到的组件是列 [V1,V2,V3...,V28]。

数据字典 如下所示:

时间 :当前记录事务与数据集中第一个事务之间经过的秒数;

V1 — V28 :可能是 PCA 缩减以保护用户身份和机密资源的结果;

数量 :交易金额;

班级 : 1 表示欺诈交易,0 否则。

让我们开始分析!

如上所述,V1-V28 的值是用 PCA 转换的,因此无法知道每一列实际代表什么。

通过对数据相关性的分析,可以看出属性与我们的目标之间没有强相关性。 Amount 属性与 V2、V5、V7 和 V20 属性之间存在平均相关性。

数据非常不平衡。 正常交易记录有284315条,欺诈记录只有492条,给出的数据不到1%。

期间发生了多少次交易?

通过交易随时间的直方图,可以在数据中看到一个非常有趣的模式:

或多或少发生欺诈的趋势遵循当天的正常交易流程。当然是适当的比例。

从交易价值分布来看,我们发现大多数欺诈行为都是低价值的。经核实, 75% 的欺诈行为的价值低于 105.89 欧元

由于数据非常不平衡,并且我想检测欺诈行为,因此我不会排除可能被视为异常值的数据。 我将为建模步骤保留所有欺诈数据。

再深入一点,你可以看到有一个 上午 8 点到晚上 9 点之间的正常交易强度要高得多 .

一天中有两次欺诈交易发生的频率更高,分别是凌晨 2:00 和上午 11:00。

这是有趣的信息。它将用于建模过程!

数据准备

训练、验证和测试的数据准备阶段,避免 数据泄露 .

在这里,数据以某种方式分离 有故事的 这边走:

  • 70% 培训
  • 15% 验证
  • 15% 测试

由于交易金额和时间数据没有被格式化,所以它们已经被标准化了 StandScaler做sklearn ,在分离训练集、验证集和测试集之后。

处理不平衡

由于类之间的差异非常大,我认为使用欠采样进行处理可能不是一个好的选择,因为会有很多数据丢失。

因此,出于比较目的,我使用了两种平衡技术:

造型

为了开始建模,我定义了一个 基线 使用不平衡数据和虚拟分类器模型,a 哑分类器 .

为观察验证数据定义的指标是:准确度、精确度、召回率、平均精确度、F1 分数、混淆矩阵以及 ROC_AUC 和精确度 x 召回率曲线。

对于这个问题,我们将仔细研究 Recall、F1-Score、ROC_AUC 曲线和 Precision x Recall 曲线的指标。

模型假人:

**虚拟模型指标****准确性** : 0.9982678308092039  
  
 **精确** : 0.0  
  
 **记起** : 0.0  
  
 **平均精度** : 0.0017321691907960957  
  
 **F1-分数** : 0.9982678308092039  
  
 **ROC-AUC** : 0.5

由 True Label 归一化的混淆矩阵。

使用混淆矩阵,我们看到模型命中了第 0 类的所有预测并错过了第 1 类的所有预测,并且仍然有 99% 的准确率。 这反映了高度不平衡的数据。

ROC 曲线的值为 0.5 表明该模型与随机预测器是一回事,即它猜测所有内容为 0 并查看会发生什么。 **一个完全愚蠢的模型! **

建议用于评估的模型

选择了三个模型进行建模。

  • 降梯度
  • 梯度提升
  • 随机森林

这些模型在正确检测能力和防止过度拟合方面具有优势。

以下是验证结果的摘要……

具有平衡随机下采样类型的降梯度

**模型指标下的 SGDC****准确性** : 0.9445705858945249  
  
 **精确** : 0.029532403609515995  
  
 **记起** : 0.972972972972973  
  
 **平均精度** : 0.029593021226662002  
  
 **F1-分数** : 0.9445705858945249  
  
 **ROC-AUC** : 0.9594917801004982

带 SMOTE 类型平衡的下降梯度

**SGDC SMOTE 模型指标****准确性** : 0.973900423679221  
 **  
精确** : 0.060016906170752324  
  
 **记起** : 0.9594594594594594  
  
 **平均精度** : 0.2948468420471046  
  
 **F1-分数** : 0.973900423679221  
  
 **ROC-AUC** : 0.9921292901690115

随机下采样平衡的梯度提升

**模型度量下的梯度提升****准确性** : 0.9551274548816742  
  
 **精确** : 0.035768261964735516  
  
 **记起** : 0.9594594594594594  
  
 **平均精度** : 0.6581426108060022  
  
 **F1-分数** : 0.9551274548816742  
  
 **ROC-AUC** : 0.9922276780027618

使用 SMOTE 型平衡提升梯度

**梯度提升 SMOTE 模型指标****准确性** : 0.9835443926874371  
  
 **精确** : 0.09102730819245773  
  
 **记起** : 0.9459459459459459  
  
 **平均精度** : 0.7633265633632431  
  
 **F1-分数** : 0.9835443926874371  
  
 **ROC-AUC** : 0.9914206125838831

具有随机欠采样类型平衡的随机森林

**模型下随机森林的度量****准确性** : 0.9726598160155427  
  
 **精确** : 0.05744336569579288  
  
 **记起** : 0.9594594594594594  
  
 **平均精度** : 0.7861966803216005  
  
 **F1-分数** : 0.9726598160155427  
  
 **ROC-AUC** : 0.9943857145301561

带 SMOTE 类型平衡的下降梯度

**随机森林 SMOTE 模型的指标****准确性** : 0.9996722923152548  
  
 **精确** : 0.9054054054054054  
  
 **记起** : 0.9054054054054054  
  
 **平均精度** : 0.9223510171307236  
  
 **F1-分数** : 0.9996722923152548  
  
 **ROC-AUC** : 0.9831897811005368

模型分析:

随机森林模型的召回率超过 90%,但使用 SMOTE 平衡数据训练的模型的准确度要好于使用随机欠采样的模型。平均精度在 78% 以上。查看 roc-auc 和precision-recall 曲线,我们看到两种情况下指标之间的关系更加平衡。 SMOTE 训练模型的 F1 得分最高,为 99.97%。准确率和召回率均为 90%。

从模型结果来看,来自随机森林的那些似乎是最有趣的。 因此,我选择了与 Random Under Sampling 平衡的随机森林模型作为最适合进入最后一个测试步骤的模型,因为它在两者之间具有最好的召回率和最高的 ROC AUC。 有了这个,我试图在不损害正常交易检测的情况下检测尽可能多的欺诈行为。

最终模型评估

使用建模中选择的模型,测试集的检测结果如下所示:

**带有测试数据的最终模型指标****准确性** : 0.9735967417255746  
  
 **精确** : 0.05489864864864865  
  
 **记起** : 0.8783783783783784  
  
 **F1-分数** : 0.9735967417255746  
  
 **平均精度** : 0.7201919477344203  
  
 **ROC-AUC** : 0.9659405466242833

最终测试结果接近验证结果。这是一个好兆头!

对于已经处理过数据并且与原始集合没有太大关系的问题,在不了解所有属性的含义的情况下,这是一个有趣的结果。

也许,如果使用更先进的技术,或者如果我们用更多记录改进原始数据集,这个结果甚至可以得到改善。

好的,我们用一个模型来结束这个过程,我们可以说它 正确分类银行交易中 88% 的欺诈行为 .

回到业务问题……

借助此类机器学习模型,反欺诈系统可以根据数据多一种选择,以提醒调查人员并更准确地检测欺诈行为。这是一个 关键绩效指标 (KPI) 这些系统,可以每天测量。假设一名调查员设法在一天内分析了 X 个欺诈警报。最大化生成的实际上是欺诈的警报数量是此类系统的主要目标。衡量这种准确性可能是一个有趣的 KPI,用于确定机器学习模型为业务带来的价值!

结论

  • 在这个项目中可以看出,欺诈检测问题并不是那么简单,机器学习模型在模式识别中非常有用。
  • 最终模型获得了一个有趣的结果。而且,与将预测猜测为 0 类的哑分类器相比,经过训练的模型要优越得多。
  • 我估计,只要测试更先进的技术,例如超参数参数化中的交叉验证和网格搜索,或者一些深度学习技术也可以在这里提供帮助,就可以获得更好的结果。

我们有一个模型可以付诸行动!很快我会在这里发布一篇新文章,介绍如何部署这个相同的模型!

啊,在关闭页面之前,别忘了看看这个其他的数据分析项目关于 爱彼迎 **. **

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/24372/08591008

posted @   哈哈哈来了啊啊啊  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示