随机森林python反欺诈_利用贝叶斯神经网络实现信用卡反欺诈检测(附代码)

本文介绍了如何使用贝叶斯神经网络和随机森林进行信用卡欺诈检测。首先解释了贝叶斯神经网络的概念,然后通过Blitz库实现了一个基于PyTorch的贝叶斯神经网络模型。数据预处理、特征工程和模型训练过程被详细描述,包括数据合并、特征选择、模型构建、训练和验证。最后,文章提到了模型的评估标准和早停策略,并给出了预测目标集的步骤。
摘要由CSDN通过智能技术生成

文:沙皇

代码:https://github.com/AzirZhang/Bayesian-Fraud-Detection​github.com

什么是贝叶斯神经网络?

贝叶斯神经网络,简单来说就是把权重和bias全部表示成概率分布而不是确定的值来代表的神经网络。

首先,贝叶斯公式:

在概率模型中,对于权重 w引入先验,求出给定数据集 D 的情况下 w 的后验分布

。根据贝叶斯公式:

当然,这个东西本身难解,因此我们需要找到方法去近似这个东西。具体的数学推导就不在这里详细阐述了,相关的信息知乎上已经有了很多优质的回答和文章。

实现贝叶斯神经网络层的基于pytorch的库——Blitzhttps://github.com/piEsposito/blitz-bayesian-deep-learning#Bayesian-Deep-Learning-in-a-Nutshell​github.com

Blitz这个库植入了一些贝叶斯神经网络的基础层,包括贝叶斯全连接层,贝叶斯卷积层等。具体每个参数的可学习的概率分布的公式在其github页面中有附带。

这个包安装需要pytorch 1.4,经测试,pytorch 1.4似乎有bug,很难直接安装,因此我在这个网站上找到了pytorch的各个版本的镜像文件,可以选择符合自己电脑的下载:https://download.pytorch.org/whl/cu92/torch_stable.html​download.pytorch.org

安装完成之后,参照blitz的github页面说明,即可完成blitz包的安装

注:直接pip install blitz会失败

代码实现 - 数据预处理

首先import我们需要的包,其中DataPreprocessing是我简单写的一个包。

from DataPreprocessing import DataInit, LGBM_FeatureSelection as FS

import sys

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import OrdinalEncoder, StandardScaler

from sklearn.ensemble import RandomForestRegressor

from sklearn.metrics import roc_auc_score

from blitz.modules import BayesianLinear

from blitz.utils import variational_estimator

import torch

import torch.utils as utils

import torch.nn as nn

import torch.nn.functional as F

import torch.optim as optim

本次采用的是一个信用卡欺诈检测的数据集,是我课程导师提供的,故不外传。但是kaggle上也有开源数据集,大家可以根据数据集本身的不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值