DATA & MACHINE LEARNING / AKWA GROUP / 2025

Audit IntelligentDétection d’anomalies comptables

Machine learning pour repérer les transactions comptables présentes dans Afriware mais absentes de JD Edwards.

Entreprise
AKWA Group — DSI, pôle Data
Type
Stage de fin d’année
Période
Juin — septembre 2025
Domaine
Data Engineering & Machine Learning
Méthodologie
CRISP-DM

Présentation du projet

Support de soutenance : problématique, données, méthodologie CRISP-DM, modèles et résultats d’évaluation.

Présentation Audit Intelligent — diapositive 1 / 28
Télécharger le PDF

01

Le défi

Chaque facture émise dans Afriware doit se retrouver dans la comptabilité JD Edwards : dans le grand livre (F0911) et dans les comptes clients (F03B11).

Certaines transactions présentes dans Afriware n’apparaissent dans aucun des deux fichiers JDE. Ces écarts compliquent le rapprochement comptable et le travail des auditeurs, qui procèdent habituellement par échantillonnage.

L’objectif : identifier ces transactions manquantes de façon systématique, sur l’ensemble des données et non sur un échantillon.

02

Trois sources, une cible

Transactions d’une société du groupe, du début de l’année 2025 au 14 juillet 2025.[Présentation, diapo 7]

Afriware

Facturation

Factures et lignes : type, client, montants HT/TTC, taxes, centre analytique, compte produit, dates.

JDE_F0911

Grand livre général

Écritures comptables issues de l’ERP Oracle JD Edwards.

JDE_F03B11

Comptes clients

Factures et état de règlement côté JD Edwards.

lignes de transactions Afriware
482 672
lignes de transactions Afriware[Tab. 3.4]
lignes absentes de JDE
49 846
lignes absentes de JDE[Tab. 3.4–3.5]
factures manquantes après regroupement
14 069
factures manquantes après regroupement[§3.3.4]

03

Méthodologie CRISP-DM

Le projet suit les six étapes de CRISP-DM. Les cinq premières ont été réalisées ; le déploiement a été étudié sous l’angle de ses implications pour l’audit, sans mise en production.

  1. 01Réalisé

    Business Understanding

    Définir l’écart à détecter avec la DSI et le service JDE.

  2. 02Réalisé

    Data Understanding

    Explorer les trois fichiers, leurs colonnes et la répartition des classes.

  3. 03Réalisé

    Data Preparation

    Nettoyer, sélectionner les variables, regrouper au niveau facture, construire les labels.

  4. 04Réalisé

    Modeling

    Entraîner et régler cinq modèles supervisés ; tester deux approches non supervisées.

  5. 05Réalisé

    Evaluation

    Comparer les modèles sur la classe minoritaire et le rappel macro.

  6. 06Étudié, non déployé

    Deployment

    Usage envisagé : liste des transactions à contrôler en priorité pour les auditeurs.

Préparation des données

  1. 01Contrôle qualité[Rapport §3.3]

    Aucune valeur manquante détectée ; suppression des doublons.

  2. 02Sélection de variables[Tab. 3.7]

    Matrice de corrélation : CodeClient, CompteProduit et CentreAnalyse retenus, avec NumFacture comme clé.

  3. 03Regroupement par facture[§3.3.4]

    Montants HT, TTC et taxes additionnés par facture : 49 846 lignes manquantes → 14 069 factures, cohérence vérifiée.

  4. 04Construction des labels[§3.3]

    Indicateurs in_jde911 et in_jde311 issus du rapprochement ; cible « Manquante » si absente des deux.

  5. 05Découpage train / test[§3.4.1 + code]

    80 % / 20 % avec une graine aléatoire fixée ; découpage stratifié pour LR, SVM, KNN et Decision Tree.

  6. 06Mise à l’échelle[Code]

    StandardScaler pour les modèles sensibles aux distances (KNN).

04

Cinq modèles supervisés comparés

Chaque modèle a été réglé puis évalué sur un jeu de test séparé. Le critère de sélection du rapport est le rappel macro, adapté aux classes déséquilibrées.

ModèleRappel « Manquante »PrécisionF1Rappel macro
Logistic RegressionTab. 3.80.800.190.310.73
SVM (LinearSVC)Tab. 3.90.490.170.260.63
Decision TreeTab. 3.100.820.820.820.90
Random Forest(modèle mis en avant)Tab. 3.110.780.930.850.89
K-Nearest NeighborsTab. 3.120.710.720.710.84

Logistic Regression

F10.31
Rappel0.80

SVM (LinearSVC)

F10.26
Rappel0.49

Decision Tree

F10.82
Rappel0.82

Random Forest

F10.85
Rappel0.78

K-Nearest Neighbors

F10.71
Rappel0.71

Valeurs des rapports de classification (tableaux 3.8 à 3.12). LR, SVM et KNN ont été évalués sur un découpage stratifié (2 815 factures manquantes en test), Decision Tree et Random Forest sur 2 829 : les comparaisons restent indicatives.

Approches non supervisées

Isolation Forest et un autoencodeur ont été testés. Ils se sont révélés peu pertinents ici, en raison du volume de données et du faible ratio d’anomalies ; le rapport ne leur attribue pas de métriques.[Rapport §3.6]

05

Évaluation du Random Forest

Rapport de classification sur le jeu de test (tableau 3.11).

Manquante (1)

Rappel0.78
Précision0.93
F10.85
Accuracy globale
0.98
Rappel macro
0.89
factures dans le jeu de test
31 849
Rapport de classification sur le jeu de test (tableau 3.11).
ClassePrécisionRappelF1Support
Présente (0)0.980.990.9929 020
Manquante (1)0.930.780.852 829

L’accuracy globale doit être interprétée avec prudence dans un problème de classes déséquilibrées. Le rappel et le F1-score de la classe des transactions manquantes sont essentiels pour évaluer l’efficacité opérationnelle du modèle : ici, 78 % des factures manquantes sont retrouvées, et 93 % des alertes sont justes.

Pas de matrice de confusion publiée : les comptes disponibles dans le rapport (tableau 3.13) proviennent d’une autre exécution que ce rapport de classification.

06

Décisions techniques et compromis

Classification supervisée[§2.1, §3.3]

Le rapprochement avec JDE fournit des labels fiables pour chaque transaction : le problème se pose comme une classification binaire plutôt qu’une recherche d’anomalies inconnues.

Cinq familles d’algorithmes[§2.1]

Linéaire, marge, arbre, ensemble et distance : comparer des biais différents avant de choisir, plutôt que présupposer un modèle.

Rappel macro comme critère[§3.4.2]

Avec environ 9 % de factures manquantes dans le test, une accuracy élevée ne prouve rien ; le rappel macro pèse autant la classe minoritaire que la majoritaire.

Pondération des classes[Code + §3.4.3]

class_weight="balanced" pour la régression logistique, le SVM et le Random Forest (200 arbres). Le KNN ne le permet pas, ce qui explique en partie sa sensibilité au déséquilibre.

Pourquoi Random Forest est mis en avant[Tab. 3.10–3.11]

Meilleur F1 (0,85) et meilleure précision (0,93) sur la classe « Manquante » : moins de fausses alertes à traiter. Le Decision Tree retrouve un peu plus de factures manquantes (rappel 0,82, rappel macro 0,90) au prix de plus de faux positifs : c’est un compromis, pas une domination.

07

Résultats et limites

Mesuré

  • Random Forest : F1 de 0,85 et rappel de 0,78 sur la classe « Manquante », accuracy de 0,98 (31 849 factures en test).
  • Les modèles à base d’arbres (Decision Tree, Random Forest) dominent les modèles linéaires et le KNN sur ce jeu de données.
  • Les approches non supervisées testées n’ont pas été retenues.

Limites

  • Classes déséquilibrées : 22 % des factures manquantes du test ne sont pas détectées (faux négatifs).
  • Une seule période (début 2025 → 14 juillet 2025) : la généralisation à d’autres périodes n’a pas été testée.
  • Les différences de format entre Afriware et JDE peuvent créer des erreurs de correspondance.
  • Les alertes doivent être validées par les auditeurs ; aucun déploiement industriel n’est démontré.