1

我正在研究信用卡欺诈检测模型,并已标记包含在线商店订单的数据。我正在使用的列是:客户全名、送货地址和账单地址(城市、州、邮编、街道)、订单数量、总成本以及订单是否被发现存在欺诈的指标。

问题在于 98% 以上的交易不是欺诈性的——数据集高度不平衡。我知道这是一个分类问题,但是我不确定从我正在使用的列和数据的不平衡从哪里开始。

对于此用例以及如何处理不平衡数据,我将不胜感激任何适当的分类算法的建议。在搜索如何解决这个问题时,我发现了几篇文章,但是大多数文章都在使用具有非常不同列的 Kaggle 数据集(由于不允许公开信息的安全原因)。

谢谢!

4

2 回答 2

2

在我看来,处理反欺诈案件的不平衡数据集有两个方向:

  1. 使用Supervised ML算法进行欺诈预测:尝试预测样本的类别(欺诈/非欺诈)
  2. 使用Unsupervised ML算法异常检测:尝试检测异常的客户/商家行为或支付活动。

监督学习(SL)方法

如果您使用有监督的 ML 算法(例如Logistic regressionRandom forestGradient Boosted Trees),那么您需要应用一个或多个技巧:

  1. 训练 ML 模型之前:

    • 过采样 -在包中添加更多少数类的样本:RandomOverSamplerSMOTE(生成合成样本)方法imblearn
    • 欠采样 -删除多数类的一些观察: 包中的RandomUnderSampler方法imblearn
    • 结合过采样和欠采样方法。
  2. 训练 ML 模型时:

    • 在训练模型方法中传递weights参数(为次要类样本设置更高的权重)。
  3. 训练 ML 模型后:

    • 不用于accuracy估计训练好的模型
    • 使用recall, precision, F1 score, or/and AUC PR(precision-recall curve ) 进行稳健的模型评估。

无监督学习 (UL) 方法

无监督算法不需要labelin 数据集。这就是为什么不存在不平衡类问题的原因。

但与基于 SL 的模型不同,基于 UL 的模型没有预测作为输出。您需要额外的操作来解释基于 UL 的模型的输出。

以下算法很可能会有用:

  1. 异常检测方法:
    • One-class SVM
    • 隔离林或iForest
    • Local Outlier Factor
  2. 神经网络方法:
    • 基于自动编码器的网络,例如AEVAE
    • DBN或深度信念网络,
    • GAN或生成对抗网络
    • Self-organized Maps.
于 2021-08-22T12:39:22.353 回答
1

我建议阅读这些文章:

  1. https://towardsdatascience.com/detecting-financial-fraud-using-machine-learning-three-ways-of-winning-the-war-against-imbalanced-a03f8815cce9
  2. https://towardsdatascience.com/methods-for-dealing-with-imbalanced-data-5b761be45a18

根据我的经验,xgboost 非常好。但是你应该有非常好的特性,它可以构建好的树

于 2020-04-06T19:04:47.960 回答