Python信用卡欺诈检测 [TensorFlow]
创始人
2024-05-16 15:29:47
0

Python信用卡欺诈检测 [TensorFlow]

提示:前言
Python ·信用卡欺诈检测


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Python信用卡欺诈检测 [TensorFlow]
  • 前言
  • 一、导入包
  • 二、加载数据
  • 三、加载数据
  • 四、 定义模型架构和适当的损失函数和指标
  • 五、使用 validation_split = 0.26 训练模型
  • 六、获取特征重要性
  • 七、对 X_test 的预测


前言

提示:大概内容:

觉得有用请不要忘记点赞👆 😃
重要的是,信用卡公司能够识别欺诈性信用卡交易,这样客户就不会为他们没有购买的商品付费。
关于数据集
该数据集包含 2013 年 9 月欧洲持卡人使用信用卡进行的交易。

该数据集显示了两天内发生的交易,其中 284,807 笔交易中有 492 笔欺诈。

数据集高度不平衡,正类(欺诈)占所有交易的 0.172%。

它仅包含作为 PCA 转换结果的数字输入变量。

特征 V1、V2、… V28 是通过 PCA 获得的主成分

唯一没有用 PCA 转换的特征是时间和数量。

特征时间包含每个事务与数据集中第一个事务之间经过的秒数。

特征金额为交易金额,该特征可用于依赖实例的成本敏感学习。

要素类是响应变量,在欺诈情况下取值 1,否则取 0。


提示:以下是本篇文章正文内容,下面案例可供参考

一、导入包

import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense,Dropout, BatchNormalization
from keras import regularizers
import numpy as np 
import pandas as pd 
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import RobustScaler

二、加载数据

阅读此链接上可用的原始数据集(作为数据框)

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

original_df = pd.read_csv('/kaggle/input/creditcardfraud/creditcard.csv')
original_df.info()

在这里插入图片描述
为比赛提供的数据集在 train_df 和 test_df 数据框中导入

train_df = pd.read_csv('/kaggle/input/playground-series-s3e4/train.csv')
train_df = pd.concat([train_df,original_df])
train_df = train_df.sample(frac=1)
train_df = train_df.reset_index(drop=True)
y_train = train_df['Class']
train_df.head()

在这里插入图片描述

test_df = pd.read_csv('/kaggle/input/playground-series-s3e4/test.csv')
test_df_id = test_df['id']
test_df.head()

在这里插入图片描述

train_df.columns

在这里插入图片描述

train_df.describe()

在这里插入图片描述

三、加载数据

存储用于缩放各个值的数字列

train_to_scale = train_df[['Time', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9','V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19','V20', 'V21', 'V22', 'V23', 'V24', 'V25', 'V26', 'V27', 'V28', 'Amount']]test_to_scale = test_df[['Time', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9','V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19','V20', 'V21', 'V22', 'V23', 'V24', 'V25', 'V26', 'V27', 'V28', 'Amount']]
scaler = RobustScaler()scaled_train = pd.DataFrame(scaler.fit_transform(train_to_scale),columns = train_to_scale.columns)
scaled_test = pd.DataFrame(scaler.transform(test_to_scale),columns = test_to_scale.columns)
X_train = scaled_train
X_test = scaled_test

四、 定义模型架构和适当的损失函数和指标

model = Sequential()# Add layers to the model
model.add(Dense(8116, input_dim=30, activation='selu')) #input layer with 64 neurons
model.add(Dropout(0.5))
model.add(Dense(2048,activation= 'relu'))
model.add(Dropout(0.5))
model.add(Dense(1024,activation= 'selu'))
model.add(Dropout(0.5))
model.add(Dense(256,activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(128,activation = 'selu'))
model.add(Dense(8,activation= 'relu'))
model.add(Dense(1, activation='sigmoid')) #output layer with 1 neuron 
model.compile(loss=['binary_crossentropy'], optimizer= tf.keras.optimizers.Adam(4e-5),metrics = [tf.keras.metrics.AUC(num_thresholds=700000,curve='ROC')])
model.summary()

在这里插入图片描述

五、使用 validation_split = 0.26 训练模型

model.fit(X_train,y_train,validation_split = 0.26,batch_size = 1024,epochs = 15)#,callbacks=[callbacks])

在这里插入图片描述

六、获取特征重要性

# Get the weights of the first layer
weights = model.layers[0].get_weights()[0]# Get the absolute values of the weights
importances = np.abs(weights)# Normalize the importances
importances = importances / importances.sum(axis=0)# Print the importances of each feature
for i, importance in enumerate(importances):print("Feature", i, "Importance", np.median(importance))

七、对 X_test 的预测

y_pred = model.predict(X_test)
print(y_pred)

以要求的格式转换 DataFrame 以提交给比赛

y_pred = pd.DataFrame(y_pred)
y_pred.columns = ['Class']
submissions_df = pd.DataFrame(pd.concat([test_df_id,y_pred],axis = 1))
submissions_df = submissions_df.reset_index(drop = True)submissions_df.to_csv('submission.csv', index=False)
submissions_df.head()

提示:这里对文章进行总结:

以上就是今天要讲的内容

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...