信用卡欺诈交易检测

本文探讨了信用卡欺诈交易检测中的样本不平衡问题,提出使用混淆矩阵、F1分数和AUC作为评估指标,并介绍了过采样、欠采样以及SMOTE技术。实验结果显示,未使用重采样时recall为0.662162,应用最优参数的逻辑回归recall为0.633759,未来将测试SMOTE和其他模型。
摘要由CSDN通过智能技术生成
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
raw_credit = pd.read_csv('creditcard.csv')#数据可以在kaggle上获取
raw_credit.head()

这里写图片描述

plt.pie(pd.value_counts(raw_credit['Class']),explode=[0,0.2],
        labels=['不欺诈','欺诈'],autopct='%.2f%%',
        colors=['lightgreen','red'])
plt.axis('equal')
plt.show()

这里写图片描述
样本类别中99%多都是为非欺诈类别,样本类别严重不平衡,就算把欺诈类别分类错误的,也可以得到很高正确率
所有对于这个数据应该采用其他衡量指标
1: 混淆矩阵
2:F1score
3:auc
对数据重采样:对小类的数据样本进行采样来增加小类的数据样本个数,即过采样(over-sampling ,采样的个数大于该类样本的个数。
对大类的数据样本进行采样来减少该类数据样本的个数,即欠采样(under-sampling,采样的次数少于该类样本的个素。
smote:Synthetic Minority Over-Sampling Technique,对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中
各种采样的优缺点:
过采样只是简单复制了小类,会过分强调已有的小类,导致对小类的过拟合
欠采样抛弃了很多大类的样本,弱化了大类的影响,会导致模型偏差较大。
因此有一种做法:重复欠采样,每个子样本都使用全部小类,而大类采用不重复采样,生成 大类/小类 个子样本,训练 大类/小类 个模型,最后
集成结果。这种做法的缺点:
要训练多个模型,增加了计算开销,小类数据被反复使用,容易造成过拟合。

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
raw_credit['norm_amount'] = sc.fit_transform(raw_credit['Amount'][:,np.newaxis])
credit = raw_credit.drop(['Time','Amount'],axis=1)
x = credit.drop('Class',axis=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值