ATELIER - Réseaux bayésiens pour la prédiction avec pyAgrum

Présentation des intervenants

 

Introduction

  • Présentation de la bibliothèque python pyAgrum développée par le LIP6. Elle permet de créer, gérer et effectuer des calculs efficaces avec des réseaux bayésiens.
  • Présentation cas d’usage Bouygues : 
    • Problématique : contrôle de remboursements afin de vérifier leur régularité.
    • Objectif : mettre en place un moteur de scoring permettant d’identifier les remboursements les plus à risque afin de limiter le nombre de contrôles non nécessaires réalisés, et d’augmenter le périmètre de contrôles.

 

Données utilisées
Jeu de données Bouygues Telecom :

  • Informations sur le remboursement initié
  • Informations clients 
  • Historique des avoirs
  • Historique des prélèvements 
  • Informations de l’avoir déclencheur
  • Informations de retours d’équipements
  • Informations d’incidents réseau

 

Synthèse des méthodes abordées sur le cas d’usage Bouygues
Plusieurs méthodes ont été mises en œuvre : d’une part, les méthodes de classification combinant l’utilisation des réseaux bayésiens et d’un algorithme d’apprentissage, d’autre part, les méthodes de classifieurs plus classiques ne reposant pas sur l’utilisation des réseaux bayésiens. 

  • Classifieur issu de la librairie pyAgrum, skbn.BNClassifier, reposant sur les réseaux bayésiens avec pour algorithme d’apprentissage :
    • Greedy Hill Climbing (méthode heuristique).
    • MIIC (Multivariate Information based Inductive Causation)
  • Autres classifieurs : Régression logistique, Arbre de décision, Random Forest, Neural Net, AdaBoost, Naive Bayes, QDA, XgBoost, LGBM

 

Résultats et évaluation des modèles
Objectif et métrique : 

  • avoir un rappel excellent et minimiser le nombre de contrôles effectués
  • d’où la définition d’une fonction de score, score_perso()

Meilleurs approches en prenant comme métrique score_perso() :

f2 score

accuracy recall

score perso

Classifieur réseaux bayésiens + Greedy Hill

0.35

0.55 0.87 0.56

Classifieur bayésien naïf

0.47

0.38

0.85

0.72

Classifieur QDA

0.45 0.16 0.98

0.97

Dans un problème qui a pour objectif de maximiser le nombre de vrais positifs, et non de maximiser le nombre total de classifications correctes, il est plus pertinent d’utiliser le f2-score que le f-score. En effet, celui-ci donne plus de poids au recall qu’à la précision le rendant ainsi plus adapté à ce type de problème.

 

Librairies et Packages Python
pyagrum
scikit-learn
matplotlib
pandas
numpy
pydot
scipy
openpyxl
xgboost
tqdm

Si le sujet des réseaux bayésiens vous intéresse, n’hésitez pas à assister à nos prochains événements dont les dates seront communiquées prochainement sur notre site.

N’hésitez pas également à revoir l’atelier sur notre chaîne Youtube, à retrouver les slides sur notre site et à retrouver les codes sur GitHub.

Share