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

文:沙皇

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

什么是贝叶斯神经网络?

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

首先,贝叶斯公式:

equation?tex=P%28E%7CF%29%3D%5Cfrac%7BP%28F%7CE%29P%28E%29%7D%7BP%28F%29%7D%5C%5C

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

equation?tex=P%28w%7CD%29 。根据贝叶斯公式:

equation?tex=P%28w%7CD%29%3D%5Cfrac%7BP%28D%7Cw%29P%28w%29%7D%7BP%28D%29%7D%5C%5C

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

实现贝叶斯神经网络层的基于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_

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值