Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

pythonnewbird/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

AltStyle によって変換されたページ (->オリジナル) /