《图机器学习》——阅读记录2,信用卡交易的图分析

将信用卡交易数据表示为图,并使用算法自动检测欺诈交易。

数据集

使用的是信用卡交易欺诈检测数据集
由包含2019年1.1到2020.12.31期间合法和欺诈交易的模拟信用卡交易组成,包括与800家商家进行交易的1000名客户的信用卡数据。
每笔交易包含了23个不同的特征,主要利用了以下信息

  • index,每一行的唯一标识符
  • cc_num,客户的信用卡号
  • merchant,商家名称
  • amt,交易额
  • is_fraud,目标变量,

在开始任何机器学习任务之前尽可能探索和熟悉数据集。

加载数据集并构建图

由于该数据集是一个简单的交易列表,执行一些操作构建信用卡交易图。
选取真实数据的20%和所有的欺诈交易,如下所示:

import pandas as pd

df = pd.read_csv('fraudTest.csv')
df = df[df['is_fraud']==0].sample(frac=0.2, random_state=42).append(df[df['is_fraud']==1])
df['is_fraud'].value_counts()

输出:一共110715 + 2145条数据。
在这里插入图片描述
了解如何从数据中构建图,

  • 二分法构建图,
  • 三分法构建图,

二分法

构建一个加权二分图 G = ( V , E , ω ) G = (V, E, \omega ) G=(V,E,ω),其中节点有两类,代表客户和商家,如果存在客户到商家的交易,则创建边。每条边分配一个权重代表交易金额。

如果客户和商家存在多笔交易,则两个节点建立一条边,权重由所有交易金额的总和给出。

知识点:二分图

二分图又称二部图,是图论中的一种特殊模型,它的顶点可分割为两个互不相交的子集,并且图中的每条边所关联的两个顶点分别属于这两个不同的顶点集。
二分图在复杂网络分析中有很多应用,例如科学家合作网络(作者和论文)、商品网络(商品和购买者)、城市公交网络(线路和站点)等都可以用二分图来进行描述。
NetworkX提供了一些基本的二分图建模与分析功能.

构建二分图的函数

# 定义构建二分图函数
import networkx as nx
def build_graph_bipartite(df_input, graph_type=nx.Graph()):
    df = df_input.copy(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值