全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
8086 4
2017-09-25
前言
      本人最近出于公司的业务需求,要构建反欺诈模型,所以测试了逻辑回归、决策树、随机森林、神经网络、SVM等一系列单一机器学习算法,以及集成学习等方法,在这里将实现方式分享给各位,毕竟业务场景不一样,结果可能完全相悖,本文的目的仅希望各位在实现各类算法时能较快速的上手。
    由于数据的商业保密性,此处不贴出数据集,不喜勿喷。好了,废话不多说,开始正文。
数据初识
        我整合的数据集500多个变量,包含申请信息、贷款信息、第三方数据等,目标是是否欺诈,FRAUD_FLAG就是我们的目标变量。以下是比较初步的数据整理

数据初识
复制代码

        如上所示,2万多笔,欺诈比例约4%左右,算是比较低的了,这还是放宽欺诈定义的结果,按照严格的定义,欺诈比例只有6‰左右。
复制代码




变量选择
        在建模之前我们需要进行数据质量的检验、探索分析等,由于此文的目的是各类机器学习算法的快速实现,此处略过,直接来到变量的选择。
        变量选择之前,由于我们的目标变量是严重失衡数据,我们需要先利用somte方法对少类进行过采样,敲黑板了,过采样的方法非常重要,若不进行过采样,可能完全没法识别欺诈样本,当然,这跟我们的数据质量、数据广度、数据浓度是有关系的。

复制代码

        变量的重要性我们可以通过随机森林实现,由randomforest函数的importance来指定,随机森林变量重要性的计算方式可以通过4种方法,分类问题可以选基于OOB,计算预测误差率的MeanDecreaseAccuracy方法,和基于样本拟合模型,计算Gini系数的MeanDecreaseGini方法;回归问题可以类似的选择%IncMSE和IncNodePrity方法。此处我们选择基于信息增益原理的Gini系数。

复制代码
复制代码


      这里Gini系数≥10的变量一共34个变量,接下来就是数据集的切分了。事实上我们还可以进行lasso或弹性网络或逐步回归进一步筛选变量,我最后的探索结果表明,基于这样一个数据量的数据集,不太适合采用非常高维的数据,很容易造成overfitting的现象,而在少变量的情形下(10个以内),逻辑回归更加稳定。


数据划分
复制代码

        如上述结果,测试集和训练集的欺诈比例都在4%左右。准备工作做完了,就开始正式建模。


逻辑回归
复制代码
      AUC面积的计算还可以调用ROCR包来计算,严格来说,ROCR得到的才是真正的AUC,此处计算的只是一个最佳点和原点以及顶点的三角形面积,所以通常比ROCR的结果要小。
       这里我们可以看到模型在测试集的auc面积,表现相当一般,可以说是比较差,才0.64。通常来说,auc面积=1,是非常完美的分类器,在0.9-1之间是很优秀的分类器,在0.8-0.9之间是一个比较良好的分类器,在0.7-0.8之间则是一般的的分类器,0.6-0.7之间则需要谨慎使用了,0.6以下就是非常坏的分类器了,基本上跟随机猜没多少区别。

随机森林
复制代码

          尽管随机森林的表现依然不能让人满意,但至少比逻辑回归有所提升。

今天先写到这里,剩下的找时间再写~~~




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-9-25 10:19:41
不知道为什么,我这里看到文章里的代码有点乱
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-10-24 19:57:16
可以私信数据集吗?想根据你的文章做实验,给一部分数据可以吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-10-24 22:18:56
woshimeilinda 发表于 2017-10-24 19:57
可以私信数据集吗?想根据你的文章做实验,给一部分数据可以吗?
抱歉,公司数据外发不了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-4 21:41:51
剩下的是不是没写啊楼主
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群