Python分析信用卡反欺诈!骗我程序员,不存在的

本文研究的是大数据量(284807条数据)下模型选择的问题,也参考了一些文献,但大多不够清晰,因此吐血整理本文,希望对大家有帮助;

本文试着从数据分析师的角度,设想“拿到数据该如何寻找规律、选哪种模型来构建反欺诈模型?”的角度来分析,以业务导向为主,不深究算法原理;

下一篇文章会说明数据结构极度不平衡的情况下,该如何修正数据集、如何调整参数。

数据来源及项目概况

数据是从kaggle上看到的项目,具体链接如下:

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

获取本例数据的,可在上述项目详情链接中下载数据。

数据集包含欧洲持卡人于2013年9月通过信用卡进行的交易。该数据集提供两天内发生的交易,其中在284,807笔交易中有492起欺诈行为。

数据集非常不平衡,负面类别(欺诈)占所有交易的0.172%。

它只包含数值输入变量,这是PCA变换的结果。不幸的是,由于保密问题,我们无法提供有关数据的原始特征和更多背景信息。特征V1,V2,… V28是用PCA获得的主要组件,唯一没有用PCA转换的特征是’Time’和’Amount’。

  • “时间”包含每个事务与数据集中第一个事务之间经过的秒数。
  • '金额’是交易金额,该特征可以用于依赖于例子的成本敏感性学习。
  • “Class”是响应变量,在欺诈的情况下其值为1,否则为0。

2、准备并初步查看数据集

1.  # 导入包 
2.  import numpy as np 
3.  import pandas as pd 
4.  import matplotlib.pyplot as plt 
5.  import matplotlib.gridspec as gridspec 
6.  import seaborn as sns; plt.style.use('ggplot') 
7.  import sklearn 
8.  from sklearn.preprocessing import StandardScaler 
9.  from sklearn.model_selection import train_test_split 
10.  from sklearn.utils import shuffle 
11.  from sklearn.metrics import confusion_matrix 
12.  from sklearn.manifold import TSNE 
13.  pass 
14.  # 倒入并查看数据 
15.  crecreditcard_data=pd.read_csv('./creditcard.csv') 
16.  crecreditcard_data.shape,crecreditcard_data.info() 
17.  <class 'pandas.core.frame.DataFrame'> 
18.  RangeIndex: 284807 entries, 0 to 284806 
19.  Data columns (total 31 columns): 
20.  Time 284807 non-null float64 
21.  V1 284807 non-null float64 
22.  V2 284807 non-null float64 
23.  V3 284807 non-null float64 
24.  V4 284807 non-null float64 
25.  V5 284807 non-null float64 
26.  V6 284807 non-null float64 
27.  V7 284807 non-null float64 
28.  V8 284807 non-null float64 
29.  V9 284807 non-null float64 
30.  V10 284807 non-null float64 
31.  V11 284807 non-null float64 
32.  V12 284807 non-null float64 
33.  V13 284807 non-null float64 
34.  V14 284807 non-null float64 
35.  V15 284807 non-null float64 
36.  V16 284807 non-null float64 
37.  V17 284807 non-null float64 
38.  V18 284807 non-null float64 
39.  V19 284807 non-null float64 
40.  V20 284807 non-null float64 
41.  V21 284807 non-null float64 
42.  V22 284807 non-null float64 
43.  V23 284807 non-null float64 
44.  V24 284807 non-null float64 
45.  V25 284807 non-null float64 
46.  V26 284807 non-null float64 
47.  V27 284807 non-null float64 
48.  V28 284807 non-null float64 
49.  Amount 284807 non-null float64 
50.  Class 284807 non-null int64 
51.  dtypes: float64(30), int64(1) 
52.  memory usage: 67.4 MB 
53.  ((284807, 31), None) 
54.  crecreditcard_data.describe() 
55.  pass 
56.  crecreditcard_data.head() 
57.  pass 
58.  # 看看欺诈与非欺诈的比例如何 
59.  count_classes=pd.value_count
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值