信用卡欺诈检测项目实战

苦逼奋斗秋招ing🐢🐢🐢🐢🐢 分享,互相进步


项目背景

数据背景:数据集包含由欧洲人于2013年9月使用信用卡进行交易的数据。此数据集显示两天内发生的交易,其中284807笔交易中有492笔被盗刷。数据集非常不平衡,正例(被盗刷)占所有交易的0.172%。,这是因为由于保密问题,我们无法提供有关数据的原始功能和更多背景信息。特征V1,V2,… V28是使用PCA获得的主要组件,没有用PCA转换的唯一特征是“Class”和“Amount”。特征’Time’包含数据集中每个刷卡时间和第一次刷卡时间之间经过的秒数。特征’Class’是响应变量,如果发生被盗刷,则取值1,否则为0。

数据下载:kaggle数据(如果注册无法显示验证码,要使用谷歌插件)

关键点

  1. 模型选择:因为要判别是否被盗刷,所以输出结果应该是 是或否,这就是二分类问题:可以选择的模型有Logistic回归, SVM,决策树,XGBoost等
  2. 标准化:数据特征V1—V28都是PCA主成分提取出来的,并且数值和Amount差别很大,所以要对Amount进行标准化(不使用归一是因为有太多离群点)
  3. 平衡样本:大部分算法默认认为数据是平均分布或者符合正太分布,但是该数据 0 1 差距过大,导致无法直接用模型训练。要对其进行平衡化处理(下面会详细说到)
  4. 交叉验证:本文用到LogisticRegression 算法,这涉及到正则化力度,所以要用交叉验证选出合适的正则化力度
  5. 数据分割验证:验证要使用最开始的样本数据,不能使用平衡后的样本数据
  6. 模型评估:由于数据不平衡,所以要考虑到AUC ROC,混淆矩阵(平衡后)评估

注意:对于非平衡样本的分类,不推荐使用混淆矩阵(Confusion matrix)进行准确率评估,因为是没有意义的。所以可以在平衡样本后使用混淆矩阵评估准确率。

读取数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split,GridSearchCV
from imblearn.over_sampling import SMOTE
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix,roc_curve, auc, recall_score, classification_report
import seaborn as sns

from sklearn import metrics
import warnings
warnings.filterwarnings("ignore")
#读取文件
df  = pd.read_csv('./creditcard.csv')
df.head()

在这里插入图片描述

可以看到Amount这一列数值并不稳定,所以要对其进行标准化.还有Time这一列,在可视化之后就要drop掉

df.isnull().sum()

#查看 欺诈和正常的数据分布
bins = 50
f, axes = plt.subplots(2, 1, sharex=True, figsize=(12,5 ))
axes[0].hist(df.Time[df.Class==1], bins=bins)
axes[0].set_title("Fraud")

axes[1].hist(df.Time[df.Class==0], bins=bins)
axes[1].set_title("Normal")

plt.xlabel('Time')
plt.ylabel('Number of Transactions')
plt.show()
  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值