机器学习中的信用卡欺诈检测

2025年3月17日 | 阅读 7 分钟

信用卡欺诈是指有人在不知情的情况下,使用他人的信用卡进行金融交易。信用卡是为了帮助消费者提高购买力而创建的;它们是与银行达成的协议,允许用户在偿还银行贷款时花费银行提供的资金,否则将产生利息费用。

随着电子商务的出现以及在新冠大流行期间 OTT 平台的蓬勃发展,信用卡以及其他支付方式的使用量急剧增加。由于自然界中的一切都是二元的,信用卡诈骗的数量也显著增加。这些盗窃行为每年给全球经济造成超过 240 亿美元的损失。因此,解决这个问题变得至关重要,并且在该价值 300 亿美元的市场中涌现了许多公司。因此,需要为如此不断增长的问题创建自动化模型,而机器学习是关键!

现在我们将尝试对信用卡交易是欺诈性还是真实性进行分类,并处理不平衡的数据集。

数据集属性

  • V1 - V28:PCA 转换产生的数值特征。
  • Time:自第一次交易以来的经过秒数。
  • Amount:交易金额。
  • Class:欺诈或非欺诈(1 或 0)

代码

导入库

读取数据集


Credit Card Fraud Detection Using Machine Learning
Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning
  • 欺诈和非欺诈情况下的特征平均值!
  • 在非欺诈情况下,V1 - V28 的平均值接近于零。在欺诈情况下,平均金额 88.29 小于平均交易金额 122.21。
  • 非欺诈交易的耗时比欺诈交易长。
  • 这些可能是识别欺诈交易的一些线索。

数据可视化

我们现在将可视化我们的数据。

目标变量可视化(Class)

输出

Credit Card Fraud Detection Using Machine Learning
  • 数据明显不平衡,大多数交易表示没有欺诈。
  • 由于数据非常不均匀,分类模型将倾向于预测多数类“无欺诈”。
  • 因此,数据平衡成为构建强大模型的重要一步。

特征选择

我们需要从数据集中选择某些特征。

相关矩阵

输出

Credit Card Fraud Detection Using Machine Learning
  • 数据集的特征太多,难以全部理解。
  • 因此,我们将仅绘制与所需变量的相关性图。

输出

Credit Card Fraud Detection Using Machine Learning
  • 对于特征选择,我们将拒绝相关值在 -0.1 到 0.1 之间的特征。
  • V4 和 V11 正相关,而 V7、V3、V16、V10、V12、V14 和 V17 与 Class 特征负相关。

ANOVA 检验

输出

Credit Card Fraud Detection Using Machine Learning
  • ANOVA 分数越高,该特征对目标变量的重要性就越大。
  • 从上图可以看出,我们将丢弃值小于 50 的特征。
  • 在本例中,我们将使用相关性图和 ANOVA 分数的特征来构建两个模型。

输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

数据平衡

处理不平衡数据有两种选择

  • 欠采样:减少目标变量多数类的样本。
  • 过采样:将目标变量的少数类样本转换为多数类样本。

为了获得最佳结果,我们将结合使用欠采样和过采样。

我们将首先对多数类样本进行欠采样,然后对少数类样本进行过采样。

为了数据平衡,我们将使用 imblearn。


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

数据平衡计算

  • 采样策略:这是过采样和欠采样的通用参数比例。
  • 采样策略: (少数类样本数) / (多数类样本数)

在这种情况下,

  • 多数类:无欺诈情况:284315 个样本
  • 少数类:欺诈情况:492 个样本

欠采样:减少多数类样本

  • 采样策略 = 0.1
  • 1 = (492) / 多数类样本数
  • 欠采样后,
    • 多数类:无欺诈情况:4920 个样本
    • 少数类:欺诈情况:492 个样本

过采样:增加少数类样本。

  • 采样策略 = 0.5
  • 即 (少数类样本数) / 4920。

过采样后,

  • 多数类:无欺诈情况:4920 个样本。
  • 少数类:欺诈情况:2460 个样本。

最终类样本

  • 多数类:无欺诈情况:4920 个样本。
  • 少数类:欺诈情况:2460 个样本。

为了考虑预测中的潜在偏差,我们复制了不平衡数据集中的数据。由于此复制过程,我们使用合成数据进行建模,以确保预测不会偏向多数目标类值。

因此,仅根据准确率对模型进行评分将是具有欺骗性的。相反,我们将使用混淆矩阵、ROC-AUC 图和 ROC-AUC 分数来评估模型。

建模

现在,我们将研究各种机器学习模型。



1. 逻辑回归


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

2. SVM


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

3. DTC


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

4. RFC


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

5. KNN


输出

Credit Card Fraud Detection Using Machine Learning

输出

Credit Card Fraud Detection Using Machine Learning

结果表格

基于相关性图的模型

序号。机器学习算法交叉验证分数ROC AUC 分数F1 分数(欺诈)
1逻辑回归98.01%92.35%91%
2支持向量分类器97.94%92.10%91%
3决策树分类器96.67%91.36%90%
4随机森林分类器97.84%91.71%91%
5K-近邻99.34%97.63%97%

基于 ANOVA 分数模型

序号。机器学习算法交叉验证分数ROC AUC 分数F1 分数(欺诈)
1逻辑回归98.45%94.69%94%
2支持向量分类器98.32%94.40%94%
3决策树分类器97.13%93.69%93%
4随机森林分类器98.20%94.06%94%
5K-近邻99.54%98.47%97%

特征是隐藏的,并且由于对问题的领域知识无法支持特征选择。统计检验在选择建模特征方面至关重要。

由于数据已通过 SMOTE 分析进行平衡,因此在这些合成数据上训练的模型无法通过准确率进行测试。因此,我们使用交叉验证分数和 ROC-AUC 分数来评估我们的模型。


下一主题KL 散度