Skip to content

vvvictorlee/Anti-Fraud

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Anti-Fraud

尝试构建反欺诈模型 监督模型:当成是不平衡样本的二分类问题,有时间这个因素,可以同时考虑时间序列异常值问题来处理 欺诈的种类多而且一直在变化更新 数据预处理: 检查缺失值 分析特征相关度:PCA-相关度低 样本比例严重不平衡,偏斜程度很大,分类困难,可能把异常值和噪音混在一起 通过可视化,对比了一下欺诈样本与正常样本特征与特征两两之间的分布区别:基本上来看欺诈样本与正常样本呈现聚类的状态,这对于分类来说是个好消息,说明两者 在某种意义上可分,尝试多元高斯分布 知道具体含义的特征只有时间和交易量。Amount严重右偏,大多数情况下,交易量是稳定在一个比较小的范围内的。对于Time1特征,可以发现呈双峰分布,有明显的交 易高峰,与交易低谷 对比欺诈与非欺诈的样本,发现time方面,两者的分布差异并不大,欺诈的交易时间分布更加大,并且甚至在交易低谷任保持比价高的欺诈交易比例 在amount方面,欺诈交易量一般较小,基本在2500以下,而正常的样本中却分布着一下交易量特别大的点,可能会成为模型训练过程中的噪声,不利于模型的拟合,因而可以考虑将其剔除 因为amount,time特征的数值与其他特征明显不在一个数量级,一些模型的训练效果可能会受影响,因而对他们进行缩放,不采用常规的标准化,而采用能对数据中心和范围进行更稳健估计的RobustScaler 利用t-SNE降维到2维,对数据分布可视化,同时也可用于最后的算法效果的评估。可视化结果表明,大部分欺诈样本呈现聚类,这部分欺诈样本应该比较容易被区分,而混杂在正常样本中的那些样本可能区分起来会有挑战性 然后尝试使用统计学的手段来分析amount这个特征在欺诈与正常样本之间是否有统计学显著不同。采用的是单样本t-检验,检验两者的平均值是否显著不同。结果显示,在0.05的显著度下,由于t值在95%置信区间之外,我们可以拒绝原假设,认为两者amount的平均值显著不同 模型训练: 由于是不平衡类别分类,模型的评价标准采用了AUC,并且考察了结果的混淆矩阵。 不平衡分类,采用过采样的SMOTE方法,增加欺诈样本数目,也可采用欠采样的Easy ensamble 由于时间不足,采用了较为简单的LR模型,只调节了模型的C参数(正则项的倒数),还可以考虑调节class——weight,可以设置欺诈样本的权重稍微大一点,因为欺诈样本比价少 使用分层划分,使得训练集与测试集样本的分布大致相同,测试集占0.2,训练集采用10折交叉验证,当C参数为0.1时,验证集效果最好,AUC0.98,召回率0.91 在测试集上,AUC0.98,召回率0.90,与训练集差不多,模型泛化能力应该还不错 考虑到现实中,大部分欺诈都是没有标签的,考虑使用非监督的isolation forest 异常值往往与其他样本相似性小,因而通过较少的划分,就可将其划分到独立的空间中,工业界用得较多,效果好 得到的是划分次数,要将其转化为类别标签,要进行处理,设置5%异常样本,也可调节这个调优,最终AUC0.913,召回率0.88,与监督模型有差距,但是速度快,并且不用标签 同时可以考虑结合专家标注样本,半监督模型等

About

尝试构建反欺诈模型

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%