随机森林模型代码_信用卡盗刷分析(随机森林与逻辑回归模型)

5acaf377745406a29d1ca949f9bff584.png

1.背景介绍

数据集是由kaggle平台提供的2013年9月欧洲持卡人通过信用卡进行的交易。

https://www.kaggle.com/mlg-ulb/creditcardfraud​www.kaggle.com

此数据集显示了两天内发生的交易,在284,807笔交易中,有492起欺诈。数据集高度不平衡,“欺诈”占所有交易的0.172%。 由于机密性问题,无法提供有关数据的更多背景信息。特征V1,V2,…,V28是使用PCA获得的主要特征,尚未通过PCA转换的特征是“Time”和“Amount”。 特征“Time”包含数据集中每个交易和第一个交易之间经过的秒数。 特征“Amount”是交易金额。 特征“Class”是响应变量,在发生欺诈时其值为1,否则为0。

2.提出问题

如何准确快速识别是否发生信用卡欺诈盗刷?如何通过所获得的数据构建逻辑回归模型和随机森林模型来判断是否发生信用卡欺诈?

3.理解数据

#导入相应的包与模块

f9c17fda837c5fd58da5b1f8f8c00ac3.png
#查看数据集信息

从以上的数据探索中,我们可以看到这个数据集一共有30个特征,有28个变量由于敏感原因,数据提供商已经将变量的具体描述性名称和定义去掉,没有发现空值

#我们首先看一下正常交易和盗刷之间的比例

f988235b70493132b6c50b40e553d170.png
#我们看一下正常交易和盗刷之间的交易金额的统计结果

从分布可以看出,盗刷的卡在25%到75%分位点的分布其实比较宽,而正常交易其实有很强的长尾效应,我们做一些可视化的展示。

#绘制箱型图

7e43fc30f0f9fb3602e9eebb189c9486.png
#从其他特征进行探索数据

72192a636ca2f7c50f9b0b109a18bb87.png
#从交易时间对数据进行探索

30df47de3d5060c677da0881c81d6fa6.png

4.逻辑回归和随机森林模型的建立来预测金融欺诈

4.1数据预处理

4.1.1 对特征进行标准化

#数据标准化处理

401b5c00d990a51a025d958123cc4b5d.png

4.1.2用SMOTE模型进行采样

#由于sklearn函数包不能识别dataframe数据结构,所以需将数据分为x,y分别指数输入变量和预测变量

4.2特征工程

本数据集已经经过PCA降维处理过,故不在做多余处理,直接划分处理后的数据集

#训练集与测试集数据集划分

4.3模型构建

4.3.1逻辑回归模型

#实例化模型

模型评估

print

4.3.2随机森林模型

#建立随机森林分类器

模型评估

print

d78257267da9639ba89fea87acecd5b7.png
#根据特征重要性按权重绘制图片

2209d18c4ee3e1efb397d40d37a18373.png

可以看出,排在前8名的分别为V14、V10、V16、V4、V11、V2、V17、V21,其余特征的重要性较弱,可重点关注前八个特征。

结合两个模型的recall和Precision Recall Curve以及roc_auc_score,随机森林的模型更好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值