DOI: 10.5281/zenodo.14216923
title: Graphe : Détection de fraude sur un produit de paiements fractionnés

description: Le jeu de données présenté est issu du papier "Apprentissage machine appliqué à la détection de fraudes bancaires" de Facci Aurélien, Pinaud Bruno, Cavarroc Julie et Pidash Angelina.

Ce jeu de données est anonymisé et extrait d'un produit de paiements fractionnées en ligne proposé par BNP PARIBAS PERSONAL FINANCE.

Le jeu de données représente un jeu de fraudes bancaires (classes déséquilibrées) qui peut être représenté sous la forme d'un graphe à l'aide des fichiers "donnees_sommets.csv" et "liens_sommets.csv". La partie "Ouverture des données", ci dessous fournit le code minimal afin d'ouvrir les données brutes et de les transformer en graphe.

Les autres fichiers permettent de reproduire le découpage des données présenté dans l'article pour les ensembles d'entraînements et la validation croisée, de tests et de hors-temps.

 

Ouverture des données :

# Import libraries
import polars as pl
import dgl
import torch

# Open csv
node_data = pl.read_csv('donnees_sommets.csv', separator = ';')
display(node_data.head())
link_nodes = pl.read_csv('liens_sommets.csv', separator = ';')
display(link_nodes.head())

# Create the links of the graph
g = dgl.graph((link_nodes.select(pl.col('SOURCE')).to_numpy().ravel(), link_nodes.select(pl.col('TARGET')).to_numpy().ravel()))

# add the data in the graph
g.ndata['NUMERO_COMMANDE'] = torch.tensor(node_data.select(pl.col('NUMERO_COMMANDE')).to_numpy().ravel())
g.ndata['PROPRIETES'] = torch.tensor(node_data.select(pl.col(['A', 'B', 'C', 'D', 'E', 'F', 'G'])).to_numpy())
g.ndata['INDICATEURS'] = torch.tensor(node_data.select(pl.col(['H', 'I', 'J', 'K', 'L'])).to_numpy())
g.ndata['CLASSE'] = torch.tensor(node_data.select(pl.col('CLASSE')).to_numpy().ravel())

 

1.       Structure du graphe :

Les fichiers ci-dessous permettront aux utilisateurs de reconstruire le graphe anonymisé.



Fichier "donnees_sommets.csv" : Ce document contient 14 colonnes avec le numéro du sommet et les données associées au graphe anonymisé.




Fichier "liens_sommets.csv" : Ce document indique les liens d’un sommet « SOURCE » vers un sommet « CIBLE » dans le graphe anonymisé.


2.       Echantillonnages :

Dans les modèles d’apprentissage, des échantillons d’entraînements, de tests et de hors-temps sont nécessaires afin d’évaluer les performances des modèles et d’éviter le surapprentissage.



(Entraînement) Fichiers "train_cv_GNN.csv" et "train_cv_ME.csv" : Ces documents permettent de recréer les découpages d’entraînements et des validations croisées appliqués sur les données afin d’entrainer l’approche présentée dans l’article associé à la publication de ce jeu de données.




 (Test) Fichiers "test_GNN.csv" et "test_ME.csv" : Ces documents permettent de recréer le découpage des ensembles tests afin de tester l’approche présentée dans l’article associé à la publication de ce jeu de données.

(Hors-temps) Fichier "observation_perf.csv" : Ce document contient les demandes financées permettant d’observer les performances de notre approche en comparaison de l’approche actuelle.


Pour plus d'information sur le jeu de données, se réferer au document "Fichier_complémentaire.pdf".