在我看来,处理反欺诈案件的不平衡数据集有两个方向:
- 使用
Supervised ML
算法进行欺诈预测:尝试预测样本的类别(欺诈/非欺诈)
- 使用
Unsupervised ML
算法异常检测:尝试检测异常的客户/商家行为或支付活动。
监督学习(SL)方法
如果您使用有监督的 ML 算法(例如Logistic regression
、Random forest
、Gradient Boosted Trees
),那么您需要应用一个或多个技巧:
在训练 ML 模型之前:
- 过采样 -在包中添加更多少数类的样本:
RandomOverSampler
,SMOTE
(生成合成样本)方法imblearn
- 欠采样 -删除多数类的一些观察:
包中的
RandomUnderSampler
方法imblearn
- 结合过采样和欠采样方法。
在训练 ML 模型时:
- 在训练模型方法中传递
weights
参数(为次要类样本设置更高的权重)。
训练 ML 模型后:
- 不用于
accuracy
估计训练好的模型
- 使用
recall
, precision
, F1 score
, or/and AUC PR
(precision-recall curve ) 进行稳健的模型评估。
无监督学习 (UL) 方法
无监督算法不需要label
in 数据集。这就是为什么不存在不平衡类问题的原因。
但与基于 SL 的模型不同,基于 UL 的模型没有预测作为输出。您需要额外的操作来解释基于 UL 的模型的输出。
以下算法很可能会有用:
- 异常检测方法:
One-class SVM
- 隔离林或
iForest
Local Outlier Factor
- 神经网络方法:
- 基于自动编码器的网络,例如
AE
,VAE
DBN
或深度信念网络,
GAN
或生成对抗网络
Self-organized Maps
.