Vous êtes sur la page 1sur 82

ERP-BI

Mise en place d’un système de


prédiction et de visualisation de la
masse salariale
Réalisé par: KOUSSAY HENI

Encadrant ESPRIT: AYMEN JBALIA

Encadrant Entreprise: SAMMAR ABBADI


Dédicaces

Je dédie ce travail à mes chers parents. Aucune dédicace ne saurait l’amour, le respect
et l’attachement que j’ai pour vous. Je suis reconnaissant pour les sacrifices que vous avez fait
pour mon bien-être, mes études et surtout pour mon instruction. J’espère que vous êtes fiers de
moi et je fais de mon mieux afin de prendre en considération vos confiances et vos sacrifices. Je
vous remercie d’avoir toujours cru en moi et un grand merci d’être toujours présents autour de
moi, cette présence m’a provoqué tant de force.
Aussi, je dédie ce projet à tous mes enseignants, qui m’ont enseigné et m’ont procuré un
encadrement au sein de l’école supérieure privée d’ingénierie et de technologie, et également à
toutes les personnes, de près ou de loin, et qui m’ont donné la motivation et qui représentent
pour moi une source de courage et qui m’ont aidé à avancer malgré les difficultés rencontrées.
J’espère que vous serez toujours présents à mon côté.
Remerciements

J’adresse mes vifs remerciements à tous ceux qui ont contribué à l’élaboration de ce
projet. Je les adresse tout d’abord aux membres du centre nationale d’informatique pour
m’avoir accepté en tant que stagiaire et m’accueillir au sein la société.
Mes remerciements s’adressent aussi à Madame SAMMAR ABBADI mon encadrante
d’entreprise pour sa disponibilité et ses conseils précieux qui m’ont conduit à accomplir ce
modeste travail et à enrichir mes connaissances tout au long du stage.
Je tiens à remercier également les membres du jury de m'avoir fait l'honneur d'accepter
d’évaluer et de juger ce travail, et surtout mon encadrant pédagogique Monsieur JBALIA AYMEN
et l’expert Madame MARWA AMMAR DAOUD pour leurs directives, leurs critiques constructives
et leurs conseils tout au long de la période du stage jusqu’à la finalisation de ce projet
Je n’oublierai pas de remercier mes parents pour leur contribution, leur patience et leur
soutien durant ce stage ainsi que pendant mes années d’études.
Résumé

Le présent rapport synthétise le travail organisé au sein de l’établissement d’accueil


« Centre National de l’Informatique ». Le but de ce stage est de réaliser un système de
visualisation de l’évolution et de la prédiction de la masse salariale du gouvernorat tunisien, qui
consiste à la préparation d’un modèle prédictif et le déploiement de ce modèle dans une
application web afin d’assister à la prise des décisions concernant la masse salariale et ses
facteurs.
Ce sujet repose principalement sur l’utilisation des algorithmes de MACHINE LEARNING
et de DEEP LEARNING afin de générer un modèle robuste, performant et rapide dans
l’estimation des résultats de prédiction. Il vise également à la préparation d’une application en
SPRING BOOT pour la partie BACK-END et ANGULAR pour la partie FRONT-END.

Mot clés : Machine Learning, Deep Learning, Spring Boot, ANGULAR, Masse Salariale,
Modèle, Métriques, déploiement, Algorithme de prédiction, Data Science

Abstract

This report summarizes the work organized within the host establishment “National
Computing Center”. The aim of this internship is to create a visualization system for the
evolution and the prediction of the payroll of the Tunisian governorate, which consists in the
implementation of a prediction model and the deployment of this model in a web application to
help in decisions making regarding the payroll and its factors.
This subject is mainly based on the use of MACHINE LEARNING and DEEP LEARNING
algorithms in order to generate a robust, efficient and rapid model for the estimation of
prediction results and the preparation of a SPRING BOOT application for the BACK-END part and
ANGULAR for the FRONT-END part.
Keywords : Machine Learning, Deep Learning, Spring Boot, ANGULAR, Payroll, Model,
Metrics, deployment, Prediction algorithm, Data Science
Table des matières

1.1 Introduction ................................................................................................................................ 2


1.2 Présentation de l’organisme d’accueil : ........................................................................................... 2
1.2.1 Activité de l’entreprise : .............................................................................................................. 2
1.2.2 Missions : .................................................................................................................................... 2
1.2.3 Produits développés par l’entreprise : ....................................................................................... 3
1.3 Présentation de projet : ..................................................................................................................... 4
1.3.1 Cadre de projet : ......................................................................................................................... 4
1.3.2 Contexte et problématique :....................................................................................................... 4
1.3.3 Objectifs de la solution proposée : ............................................................................................. 4
1.4 Etude de l’existant : ........................................................................................................................... 5
1.5 Choix méthodologique : .................................................................................................................... 6
1.5.1 Cycle de vie CRISP :.................................................................................................................... 6
1.5.2 KDD ............................................................................................................................................. 7
1.5.3 Choix de la méthodologie :......................................................................................................... 8
1.6 Etude des concepts clés : ................................................................................................................. 8
1.6.1 Les modèles d’apprentissage automatique « Machine Learning » : .......................................... 8
1.6.1.1 Apprentissage non supervisé : ............................................................................................ 8
1.6.1.2 Apprentissage supervisé : ................................................................................................... 9
1.6.1.3 Apprentissage par renforcement : ....................................................................................... 9
1.6.2 Les modèles d’apprentissage automatique « Deep Learning » :................................................ 9
1.6.2.1 Réseaux de neurones convolutifs « CNN » : ......................................................................... 9
1.6.2.2 Réseaux de neurones Récursifs « RNN » : ............................................................................ 9
1.6.2.3 Réseaux de neurones de longue mémoire à court terme « LSTM » : .................................. 10
1.6.3 Application WEB : ..................................................................................................................... 10
1.7 Conclusion : .................................................................................................................................... 10
Chapitre 2 : Compréhension métier ..................................................................................................... 11
2.1 Introduction : .................................................................................................................................. 11
2.2 Objectifs métiers : .......................................................................................................................... 11
2.2.1 Détermination des objectifs : .................................................................................................. 11
2.2.2 Critères de réussite DATA MINING : ......................................................................................... 11
2.3 Planification du projet : .................................................................................................................. 11
2.3.1 Plan du projet ........................................................................................................................... 11
2.3.2 Outils et technologies : ............................................................................................................ 12
2.3.3 Bibliothèques utilisées : .......................................................................................................... 14
2.4 Conclusion :.................................................................................................................................... 16
3.1 Introduction : .................................................................................................................................. 17
3.2 Source des données : ..................................................................................................................... 17
3.2.1 Chargement des données :....................................................................................................... 17
3.2.2 Aperçu des données : ............................................................................................................... 18
3.2.2.1 Aperçu des données du fichier « detail_paie » : ................................................................. 18
3.2.2.2 Aperçu des données du fichier recrutement : ................................................................... 18
3.3 Description des variables : ............................................................................................................ 19
3.3.1 Description des variables « detail_paie » :............................................................................. 19
3.3.2 Description des variables « recrutement » : .......................................................................... 20
3.4 Exploration des données : ............................................................................................................. 20
3.4.1 Description des données : ...................................................................................................... 22
3.4.2 Test de normalité :................................................................................................................... 23
3.4.3 Corrélation :............................................................................................................................. 24
3.4.4 Distribution de la variable Cible : ........................................................................................... 25
3.4.5 Analyse des valeurs manquantes : ........................................................................................... 25
3.5 Description des données : .............................................................................................................. 27
3.5.2 Analyse de la répartition de « montant_ind » par année : ......................................................... 27
3.5.3 Analyse de la répartition de « montant_ind » par « nat_indemnité »: ........................................ 28
3.5.4 Analyse de la répartition du taux de recrutement par année : ................................................. 28
3.5.5 Analyse de la variation de la masse salariale par mois : .......................................................... 30
3.6 Conclusion : .................................................................................................................................... 30
Chapitre 4 : Préparation des données .................................................................................................. 31
4.1 Introduction : ................................................................................................................................... 31
4.2 Ajout de nouvelles colonnes : ......................................................................................................... 31
4.3 Nettoyage des données : ................................................................................................................. 32
4.3.1 Suppression des colonnes inutiles : ........................................................................................ 32
4.3.2 Extraction des valeurs numériques : ........................................................................................ 32
4.3.3 Conversion des types de données : .......................................................................................... 33
4.3.4 Label Encoder : ......................................................................................................................... 34
4.3.5 Manipulation des données manquantes : ................................................................................ 34
4.3.6 Matrice de corrélation : ............................................................................................................ 36
4.4 Conclusion : .................................................................................................................................... 36
5.1 Introduction : ................................................................................................................................... 37
5.2 Techniques de modélisation : ......................................................................................................... 37
5.3 Choix du modèle :............................................................................................................................ 38
5.3.1 Division des données en Train et Test : ..................................................................................... 38
5.3.2 Validation croisée : ................................................................................................................... 38
5.3.3 Test des fonctionnalités :.......................................................................................................... 39
5.3.3 Sélection des fonctionnalités avec KBEST :............................................................................. 39
5.4 Construction du modèle de prédiction : ......................................................................................... 40
5.4.1 Régression linéaire : ................................................................................................................. 40
5.4.2 DECISION TREE REGRESSOR : .................................................................................................. 41
5.4.2.1 Implémentation : ............................................................................................................... 41
5.4.2.2 Visualisation de l’arbre de décision : ................................................................................ 41
5.4.3 RANDOM FORREST REGRESSOR : ............................................................................................. 42
5.4.3.1 Implémentation :............................................................................................................... 42
5.4.3.2 RANDOMIZED SEARCH CV :............................................................................................... 42
5.4.4 K NEAREST NEIGHBOR REGRESSOR : ...................................................................................... 43
5.4.5 ADABOOST : .............................................................................................................................. 44
........................................................................................................................................................... 44
5.4.6 XGBOOST : ................................................................................................................................ 44
5.4.7 Réseaux de neurones : ............................................................................................................. 45
5.4.7.1 Principe :............................................................................................................................ 45
5.4.7.2 Implémentation : ............................................................................................................... 45
5.4.8 LSTM :........................................................................................................................................ 46
5.5 Conclusion : .................................................................................................................................... 47
Chapitre 6 : Comparaison des modèles ............................................................................................... 48
6.1 Introduction : ................................................................................................................................... 48
6.2 Critères de comparaison des modèles implémentés :................................................................... 48
6.2.1 Métriques utilisées dans la comparaison : .............................................................................. 48
6.2.2 Ajustement du modèle : UNDERFITTING ou OVERFITTING : .................................................... 49
6.2.3 Temps d’entrainement et de prédiction : ................................................................................. 50
6.3 Comparaison des différents algorithmes : ..................................................................................... 50
6.3.1 Evaluation du modèle de DECISION TREE REGRESSOR :......................................................... 50
6.3.2 Evaluation du modèle de K NEAREST NEIGHBOR : .................................................................. 51
6.3.3 Evaluation du modèle de RANDOM FORREST REGRESSOR : ................................................... 52
6.3.4 Evaluation du modèle de ADABOOST : ..................................................................................... 53
6.3.5 Evaluation du modèle XGBOOST : ............................................................................................ 54
6.3.6 Evaluation du modèle Réseaux de neurones : ......................................................................... 54
6.3.7 Evaluation du modèle de LSTM : .............................................................................................. 55
6.4 Choix du modèle : ............................................................................................................................ 56
6.5 Conclusion : .................................................................................................................................... 58
7.1 Introduction : ................................................................................................................................... 59
7.2 Partie conceptuelle de notre application : ..................................................................................... 59
7.2.1 Besoins fonctionnels de l’application : ................................................................................... 59
7.2.2 Modélisation des fonctionnalités de notre application : ......................................................... 59
7.2.2.1 Langage de modélisation : ................................................................................................. 59
7.2.2.2 Logiciel de modélisation :.................................................................................................. 60
7.2.3 Identification des acteurs de notre application : ..................................................................... 60
7.2.4 Modélisation des besoins : ....................................................................................................... 60
7.2.5 Besoins non fonctionnels de l’application : ............................................................................. 61
7.3 Partie empirique de notre application : .......................................................................................... 61
7.3.1 Authentification :...................................................................................................................... 61
7.3.2 Partie statistique : .................................................................................................................... 62
7.3.3 Déploiement : ........................................................................................................................... 65
7.4 Conclusion : .................................................................................................................................... 66
Conclusion générale et perspectives ................................................................................................... 67
Liste des figures
Figure 1 : LOGO CNI .............................................................................................................................2
Figure 2 : TASSAROF AMALA .................................................................................................................5
Figure 3 : PAIE TUNISIE .........................................................................................................................5
Figure 4 : CRISP-DM .............................................................................................................................6
Figure 5 : CYCLE DE VIE EN KDD ...........................................................................................................7
Figure 6 : PLAN D’ACTION DU PROJET .................................................................................................12
Figure 7 : LOGO PYTHON ....................................................................................................................12
Figure 8 : LOGO JUPYTER....................................................................................................................13
Figure 9 : LOGO ANACONDA ..............................................................................................................13
Figure 10 : LOGO SPRING BOOT .........................................................................................................14
Figure 11 : LOGO ANGULAR ...............................................................................................................14
Figure 12 : LOGO DES BIBLIOTHEQUES PYTHON .................................................................................15
Figure 13 : DETAILS DE LA PAIE ...........................................................................................................17
Figure 14 : CONVERSION DU FICHIER TEXTE D’ENTREE ......................................................................18
Figure 15 : JEU DE DONNEES ..............................................................................................................18
Figure 16 : DATASET RECRUTEMENT ..................................................................................................18
Figure 17 : COLONNES DE LA DATASET PAIE .......................................................................................19
Figure 18 : COLONNES DE LA DATASET RECRUTEMENT .......................................................................20
Figure 19 : COLONNES DES VARIABLES CATEGORIQUES.....................................................................21
Figure 20 : SEPARATION COLONNES CATEGORIQUES ET NUMERIQUES...............................................21
Figure 21 : CALCUL DE LA MASSE SALARIALE......................................................................................22
Figure 22 : DESCRIPTION DE LA COLONNE CIBLE ..............................................................................22
Figure 23 : HISTOGRAMME DE TEST DE NORMALITE DE LA MASSE SALARIALE ......................................23
Figure 24 : MESURES D’ASYMETRIE ET DE KURTOSIS ...........................................................................23
Figure 25 : MATRICE DE CORRELATION ...............................................................................................24
Figure 26 : IDENTIFICATION DES VARIABLES CORRELEES....................................................................24
Figure 27 : BOXPLOT DE LA VARIABLE CIBLE .......................................................................................25
Figure 28 : SCRIPT DE CALCUL DES VALEURS MANQUANTES ..............................................................26
Figure 29 : NOMBRE DE VALEURS MANQUANTES DE CHAQUE VARIABLE .............................................26
Figure 30 : CALCUL DU POURCENTAGE DE VALEURS MANQUANTES ...................................................26
Figure 31 : VARIATION DES MONTANTS INDEMNITES PAR MOIS ...........................................................27
Figure 32 : VARIATION DES INDEMNITES PAR ANNEE...........................................................................27
Figure 33 : VARIATION DES INDEMNITES PAR NATURE INDEMNITES .....................................................28
Figure 34 : SCRIPT DU CACUL DU TOTAL RECRUTEMENTS ...................................................................28
Figure 35 : AFFICHAGE DU TOTAL RECRUTEMENTS .............................................................................29
Figure 36 : HISTOGRAMME TOTAL RECRUTEMENTS PAR ANNEE ...........................................................29
Figure 37 : ANALYSE DE LA MASSE SALARIALE PAR MOIS .....................................................................30
Figure 38 : SCRIPT DU CALCUL DE LA MASSE SALARIALE ....................................................................31
Figure 39 : AFFICHAGE DE LA COLONNE MASSE SALARIALE ................................................................31
Figure 40 : SUPPRESSION DES COLONNES INUTILES ..........................................................................32
Figure 41 : SCRIPT DE TRANSFORMATION DE LA COLONNE DATE ........................................................33
Figure 42 : COLONNE DATE MODIFIEE ................................................................................................33
Figure 43 : CONVERSION DES VARIABLES DE TYPE OBJET ..................................................................33
Figure 44 : LABEL ENCODING .............................................................................................................34
Figure 45 : IMPUTATION DES VALEURS MANQUANTES .........................................................................35
Figure 46 : VERIFICATION DES VALEURS MANQUANTES ......................................................................35
Figure 47 : MATRICE DE CORRELATION ...............................................................................................36
Figure 48 : ELIMINATION DES VARIABLES FORTEMENTS CORRELEES ...................................................36
Figure 49 : DIVISION DES DONNEES EN TRAIN ET SET .........................................................................38
Figure 50 : CROSS VALIDATION ..........................................................................................................38
Figure 51 : TEST DES FONCTIONNALITES ............................................................................................39
Figure 52 : SCRIPT DE SELECTION DES FEATURES USING KBEAST .......................................................39
Figure 53 : REGRESSION LINEAIRE .....................................................................................................40
Figure 54 : DECISION TREE REGRESSOR .............................................................................................41
Figure 55 : ARBRE DE DECISION .........................................................................................................42
Figure 56 : RANDOM FORREST REGRESSOR........................................................................................43
Figure 57 : KNEAREST NEIGHBOR .......................................................................................................43
Figure 58 : ADABOOST .......................................................................................................................44
Figure 59 : XGBOOST .........................................................................................................................45
Figure 60 : RESEAUX DE NEURONES ...................................................................................................46
Figure 61 : LSTM.................................................................................................................................46
Figure 62 : TYPES D’AJUSTEMENTS MACHINE LEARNING .....................................................................49
Figure 63 : METRIQUES DE DECISION TREE REGRESSOR .....................................................................50
Figure 64 : APPRENTISSAGE DECSION TREE .......................................................................................51
Figure 65 : METRIQUES DE KNN .........................................................................................................51
Figure 66 : APPRENTISSAGE DE KNN ..................................................................................................52
Figure 67 : METRIQUES DE RANDOM FORREST REGRESSOR................................................................52
Figure 68 : APPRENTISSAGE DE RANDOM FOREST ..............................................................................53
Figure 69 : METRIQUES ADABOOST ....................................................................................................53
Figure 70 : APPRENTISSAGE ADABOOST .............................................................................................53
Figure 71 : METRIQUES XGBOOST ......................................................................................................54
Figure 72 : APPRENTISSAGE XGBOOST ...............................................................................................54
Figure 73 : METRIQUES RESEAUX DE NEURONES ................................................................................55
Figure 74 : APPRENTISSAGE RESEAUX DE NEURONES ........................................................................55
Figure 75 : METRIQUES LSTM..............................................................................................................55
Figure 76 : APPRENTISSAGE LSTM ......................................................................................................55
Figure 77 : TRI DES MODELES .............................................................................................................56
Figure 78 : COMPARAISON DES MODELES ML.....................................................................................57
Figure 79 : RAPIDITE DES ALGORITHMES ............................................................................................58
Figure 80 : DIAGRAMME DE CAS D’UTILISATION GLOBALE ...................................................................60
Figure 81 : PAGE D’AUTHENTIFICATION ..............................................................................................61
Figure 82 : INSCRIPTION UTILISATEUR ................................................................................................62
Figure 83 : PAGE D’ACCUEIL ...............................................................................................................62
Figure 84 : TELECHARGEMENT DES FICHIERS .....................................................................................63
Figure 85 : STATISTIQUES DE LA MASSE SALARIALE ............................................................................63
Figure 86 : STATISTIQUES DES INDEMNITES ........................................................................................64
Figure 87 : STATISTIQUES DES RECRUTEMENTS ..................................................................................64
Figure 88 : STRUCTURE DU DEPLOIEMENT .........................................................................................65
Figure 89 : EXECUTION DE LA PARTIE DEPLOIEMENT DU MODELE .......................................................65
Figure 90 : VALEURS DE TEST .............................................................................................................66
Liste des abréviations et acronymes

CRISP-DM : Cross-INDUSTRY STANDARD PROCESS FOR DATA-MINING


KDD : KNOWLEDGE DISCOVERY DATABASES
ML : MACHINE LEARNING
DL : DEEP LEARNING
RNN : RESEAUX DE NEURONES RECCURENTES
LSTM : LONG-SHORT TERM MEMORY
CNN : CONVOLUTIONAL NEURAL NETWORK
PANDAS : PYTHON DATA ANALYS LIBRARY
NUMPY : POOR NUMERICAL PYTHON
MAE : MEAN ABSOLUTE ERROR
RMSE : ROOT MEAN SQUARED ERROR
MAPE : MEAN ABSOLUTE ERROR
MSE : MEAN SQUARED ERROR
XGBOOST : BOOSTING DE GRADIENT EXTREME
KNN : K NEAREST NEIGHBOR
ADABOOST : ADABTIVE BOOSTING
CV : CROSS VALIDATION
INSAF : Gestion du personnel de l’état et des entreprises publiques
K BEAST: K Best Features
RF : RANDOM FORREST REGRESSOR
Dtree: DECISION TREE REGRESSOR
CNI: Centre Nationale de l’informatique
Introduction générale

De nos jours, l’informatique occupe une place prépondérante au sein des entreprises.
Ceci revient aux différents changements rencontrés par ces entreprises dans un monde
révolutionné par les sciences informatiques et les technologies novatrices. Par conséquent, se
familiariser avec de telles circonstances s’avère inévitable afin de poursuivre le développement
et d’occuper une place remarquable dans le marché.

En outre, l’informatique s’inscrit dans le cadre de l’automatisation du traitement des


données par un système. En un mot, il s’agit de l’ensemble des techniques en relation avec le
traitement de l’information. De nombreuses entreprises mettent alors en place un système
informatique qui intègre un site web et/ou une application mobile pour présenter leurs
prestations et faire connaître leurs produits aux clients, la cible visée.

De nos jours, les grandes entreprises se sont tournées vers un nouveau domaine qui est
la DATA SCIENCE et fournissent des efforts afin de l’intégrer dans les différents départements
de leurs secteurs de travail. Elles sont devenues de plus en plus conscientes du fait que
déchiffrer les données s’avère une véritable opportunité et contribue à la puissance de toute
entreprise dans le monde. Elles ont aussi compris que l’insertion de l’apprentissage
automatique dans les établissements de type informatique devient primordiale pour
l’éclaircissement et l’estimation de l’avis du client afin d’arriver à fournir tout ce qu’il veut
efficacement. Cette nouvelle notion est, en effet, liée à l’apparition d’une quantité massive de
données qui doit être traitée pour que les entreprises atteignent leurs objectifs métiers et
commerciaux et puissent prendre des décisions convenables à leurs secteurs d’activités.

Dans ce cadre, j’ai effectué un projet de fin d’études de 6 mois au sein de l’entreprise
« Centre Nationale de l’Informatique » intitulé « Mise en place d’un système de prédiction et de
visualisation de la masse salariale ». Il consiste à générer un modèle adéquat pour l’estimation
de la masse salariale dans le gouvernorat tunisien et à déployer ce modèle dans un système
d’information.

A l’ombre de ce sujet, notre plan de projet s’articule autour de sept chapitres : le


premier chapitre est dédié à la présentation du contexte générale. Il contient la présentation de
notre organisme d’accueil et la description des secteurs d’activités. Le deuxième chapitre met
l’accent sur nos objectifs côté métier et ceux de DATA MINING. Concernant Le troisième
chapitre, il focalise l’attention sur nos données disponibles qui vont par la suite être préparées
dans le chapitre 4. Dans le chapitre 5, nous mettrons en relief la modélisation des données par
le biais de différents modèles de MACHINE LEARNING y compris des modèles de DEEP
LEARNING. Le chapitre 6 relève d’une étape de comparaison entre ces différents modèles
selon plusieurs critères tout en vérifiant que chacun obéit aux différents objectifs visés par
notre projet. Enfin, le dernier chapitre est consacré au développement de notre système
d’information pour le déploiement de notre modèle prédictif choisi.

1
Chapitre 1 : Cadre général et aperçu du projet

1.1 Introduction
Dans ce chapitre, nous allons découvrir l’organisme d’accueil : « Centre Nationale de
l’Informatique », l’entreprise dans laquelle nous avons réalisé notre projet de fin d’études.
Ensuite, nous procéderons à la présentation du cadre du projet qui nous permet de mieux
comprendre la problématique. Puis, nous terminerons le chapitre en mettant en relief
l’importance du sujet de l’étude et en justifiant le choix de la méthodologie adoptée tout au long
du projet

1.2 Présentation de l’organisme d’accueil :

1.2.1 Activité de l’entreprise :


Le centre national de l’informatique [1] est un établissement de nature public fondé le
30 Décembre 1975, placé sous la tutelle du ministre des technologies et de communications,
spécialisé dans les domaines du secteur de l’informatique et de la communication et ayant la
certification en ISO 9001 2015.

FIGURE
Figure1.1 – LOGO
1 : LOGO CNICNI

1.2.2 Missions :

Le centre national de l’informatique a réussi à se positionner sur plusieurs domaines de


compétences qui se manifestent dans :
✓ Etudes et conseil :
• Réaliser des schémas directeurs informatiques, de terme de référence, de
cahiers de charges et de plans d’actions.
• Guider par les assistants dans l’installation des réseaux.
• Donner des avis et des conseils techniques.
• Elaborer les cahiers de charges dédiés au domaine réseau et sécurité.

✓ Développement :
• Assurer le développement des systèmes d’informations et leurs rétablissements.

2
• Organiser des séances de formations afin de présenter les logiciels développés par
CNI.
• Réaliser des projets à l’aide de ses propres compétences ou en partenariat

✓ Hébergement du système :
• Héberger des applications et des données avec ou sans l’utilisation.

✓ Back up et continuité des activités :


• Contribuer au bon fonctionnement et la continuité des applications nationales
lorsqu’elles sont en état endommagé.
• Travailler d’une façon continue concernant les services dédiés aux utilisateurs.
• Aider les autres institutions à élaborer leurs solutions de sauvegarde de leurs
données.
• Assurer l’hébergement des plateformes de leurs clients

✓ Formations et Certifications :
• Formation sur les applications nationales.
• Formation dédiée à l’expertise.
• Formation continue et certifiante.
• Stages pour la l’adaptation au monde professionnel

✓ Déploiement des applications et guider les utilisateurs :


• Déployer des applications développées afin d’être utilisé par l’administration.
• Mettre en place de l’assistance à travers des assistants pour guider les
utilisateurs à la bonne utilisation des applications.

1.2.3 Produits développés par l’entreprise :

Data Center : dédié à l’hébergement des grandes applications pour l’état, doté d’une
infrastructure réseau formé par différents composants matériels, logiciels et réseau
assurant la sécurité des données, la disponibilité et l’accès aux différentes applications.
Centre de Backup : Afin d’augmenter la sécurité des données et garantir la disponibilité des
systèmes d’informations et la continuité de leur activité.
Système de suivi et d’évaluation de l’exécution des projets publics : constitue
l’unique référence des données financière et humaine des projets. C’est un système d’aide
à la décision qui permet le suivi des projets/programmes, leur planification et la prédiction
de leurs coûts en ressources humaines et financières.
Système INSAF : permet de gérer l’aspect administratif et financier des établissement
publics du gouvernorat tunisiens c’est-à-dire les recrutements, les informations concernant
l’employé depuis son recrutement jusqu’à quitter son poste ainsi que ses fiches de paie.

3
Rached : c’est un système dédié au suivi des missions à l’étranger par les différentes
administrations tunisiennes. Il permet de gérer les différentes étapes de ces missions à
travers d’un système décisionnel.
MADANIA : c’est un réseau formé d’un serveur central et un autre de backup, 24 serveurs
dans les sites des gouvernorats et 396 serveurs dans les sites des utilisateurs. Il assure la
gestion de toutes les informations relatives à l’état civil (Naissance, divorce, mariage …) et
la mise à disposition de ces fiches dans les différentes municipalités

1.3 Présentation de projet :


Dans cette partie du rapport, nous donnons un aperçu du cadre du projet. Par la suite
nous présentons le contexte et la problématique du sujet. Enfin, nous citons les différents
objectifs de la réalisation de cette solution.

1.3.1 Cadre de projet :


Ce projet est réalisé en vue de l’obtention du diplôme d’ingénieur en informatique. Ce
stage est effectué au sein du Centre National d’Informatique dans la direction INSAF pendant
une période de 6 mois.

1.3.2 Contexte et problématique :


De nos jours, l’augmentation de la masse salariale constitue le centre de la majorité des
débats dans les médias en Tunisie [2] car, durant les dernières sept années, la masse salariale
du territoire tunisien est devenue parmi celles les plus élevées dans le monde entier. Cette
élévation est due aux plusieurs facteurs dont on cite : intégrer les travailleurs d’une durée
déterminée à l’effectif et puis les convertir en permanents, la mise en place de nouvelles primes
et d’autres existantes sont devenues dominantes. En fait, le gouvernorat Tunisien s’est
concentré sur la diminution de l’effectif à travers plusieurs stratégies comme l’arrêt des
recrutements, l’encouragement des départs volontaires et a négligé d’autres facteurs tel que les
indemnités, l’augmentation successive des salaires, la mise en valeur des primes existantes
déjà et l’installation de nouvelles primes, l’augmentation des rémunérations mensuelles et la
mise en place de nouveaux emplois. En revanche, cette stratégie mise par le gouvernorat
tunisien, n’a pas réussi à diminuer la masse salariale. Dans ce contexte, le Centre Nationale de
l’Informatique a décidé à tirer profit des technologies de Machine Learning et de Deep Learning
et de les implémenter aux services de cette application.

1.3.3 Objectifs de la solution proposée :


Notre objectif durant ce stage est de mettre la Machine Learning et le Deep Learning au
service de la détection des facteurs responsables de l’augmentation de la masse salariale et de
créer un système de visualisation de l’évolution et de la prédiction de la masse salariale afin
d’avoir une idée sur le marché de l’emploi côté rémunération et bénéfices, aider à la
planification budgétaire concernant les besoins des établissements publics ainsi que mieux
gérer les rémunérations des employés. La première partie consiste à étudier les différents
algorithmes et faire la comparaison selon plusieurs critères afin de choisir un algorithme
adéquat dans le but de réaliser le modèle qui sert à l’estimation du coût futur de la masse
4
salariale et par la suite le développement d’une application pour qu’elle soit adaptable avec
l’existant.

1.4 Etude de l’existant :

Les figures ci-dessous présentent deux applications développées par des établissement
appartenant au secteur public qu’on va critiquer :

FIGURE
Figure1.2 – LOGO TASSAROF
2 : TASSAROF AMALA Amala
TASSAROF AMALA est une application de gestion de la paie tunisienne qui permet de gérer les
employés de différents établissements publics. Elle offre l’accès aux différentes informations
qui concernent le personnel dont nous citons comme exemple : les primes, le salaire de base,
les départs, etc. De plus, elle nous donne une idée sur les mouvements des personnes c’est-à-
dire les absences et les congés ainsi que les salaires, les avances sur les salaires générés ainsi
que les heures supplémentaires. Les points faibles de cette application sont l’ancienneté des
informations, l’interface est confuse et désorganisée et elle ne donne pas une idée sur la
variation de la masse salariale en Tunisie ainsi que l’absence d’une partie dédiée à la
prédiction.

Figure 3 : PAIE TUNISIE


La société Paie [3] est la première référentielle de gestion de paie en Tunisie. Elle prend
en charge les données concernant les employés, leurs fiches de paie, les rémunérations, les
virements bancaires, les congés, etc. Les points faibles de cette application sont le nombre de

5
fonctionnalités qui varient selon le type de la solution utilisé car elle est payante d’une part et
elle ne comporte ni visualisation de la masse salariale ni prédiction, d’autre part.

1.5 Choix méthodologique :


Dans le cas de plusieurs projets informatiques, ne pas suivre une méthodologie conduit
à la non-réalisation des demandes nécessaires et par conséquent, à l’insatisfaction des clients.
Ainsi, le choix de la méthodologie et la bonne planification mène à une satisfaction requise tout
au long du processus de la réalisation.

Figure 4 : CRISP-DM

1.5.1 Cycle de vie CRISP :

1.Compréhension métier : Cette étape consiste en la compréhension du Business en


dégageant tous ses exigences et ces objectifs. Ces connaissances visent à donner une
définition du problème et d’avoir ensuite des solutions adéquates aux besoins de l’entreprise.

2.Compréhension des données : Ceci signifie la collecte d’information et d’évaluer la


qualité des données propres à l’entreprise, C’est une étape importante pour la compréhension
de la signification des variables et identifier leur points forts et faibles en utilisant des requêtes,
rapport et visualisations.

3. Préparation des données : cette phase est avec une durée plus longue ayant pour
objectif la construction de la base de données finale. Pour arriver à cette objectif, les données
passent par plusieurs étapes de préparation variant en fonction de la nature de ces variables
commençant par le nettoyage et la sélection puis l’encodage des variables afin d’arriver aux
solutions plus appropriées.

4.Modélisation : Cette phase est dédiée à l’implémentation des algorithmes et l’adoption de


plusieurs méthodes afin d’arriver à une solution pour le problème de l’entreprise. Plusieurs

6
modèles devront être préparés en se basant sur les données traités et différents outils de
modélisation

5.Evaluation : Dans cette étape on procède à l’évaluation des algorithmes déjà implémentés
dans le but de déterminer s’ils arrivent à satisfaire les besoins du client et apportent une
solution au problème étudié.

6.Déploiement : cette phase consiste à présenter les informations acquises au client d’une
façon organisée et exploitable par le client.

1.5.2 KDD
La notion de KNOWLEDGE Discovery in DATABASES, correspond au processus
d’extraction des connaissances dans le domaine d’exploration des données. C’est un domaine
intéressant pour les chercheurs en apprentissage automatique, bases de données,
INTELLIGENCE ARTIFICIELLE, acquisition des connaissances pour les systèmes experts et
visualisation de données.
Voici un schéma qui illustre le processus de KDD :

Figure 5 : CYCLE DE VIE EN KDD

Le cycle de vie en KDD se compose en 9 étapes :

➢ Développement et compréhension : concerne le domaine de l’application, les


connaissances préalables pertinentes et les objectifs de l’utilisateur final.
➢ La sélection : Choisir un ensemble de données ou un sous ensemble de variables sur
lesquelles la phase d’exploration va être effectués.
➢ Nettoyage et prétraitement des données : Prétraitement du bruit ou des valeurs
aberrantes, Traitement des valeurs manquantes.
➢ Transformation des données : ayant pour objectif l’utilisation des méthodes de
réduction ou de transformation de dimensionnalité pour réduire le nombre de variables.
On choisit les variables utiles pour représenter les données en fonction de l’objectif
métier.
7
➢ Choix de la meilleure solution : Choisir l’objectif du processus KDD qui peut être la
classification ou régression… selon la nature de l’objectif
➢ Choix de l’algorithme : Décider quels modèles et paramètres peuvent être appropriés.
➢ Implémentation de l’algorithme du Data MINING
➢ Interprétation et évaluation des modèles.
➢ Renforcer des Connaissances découvertes.

1.5.3 Choix de la méthodologie :


Dans cette optique, nous avons choisi de travailler avec la méthodologie CRISP-DM
puisque cette méthode nous fournira la solution la plus adéquate pour les besoins des clients
avec un meilleur flux de travail. De plus, elle représente aujourd’hui la méthodologie la plus
appropriée pour les projets en Data Science.

1.6 Etude des concepts clés :

1.6.1 Les modèles d’apprentissage automatique « Machine Learning » :


La Machine Learning est un ensemble de méthodes ayant pour objectif d’apprendre
l’intelligence à la machine et permet aux ordinateurs d’agir et prendre des décisions comme les
humains et améliorer leur apprentissage au fil du temps après avoir être programmés
explicitement en se basant sur des données sous forme d’observations.
Les modèles d’apprentissage automatique sont des équations mathématiques
appliqués aux données afin de les présenter de manière significative. L’un des points forts du
ML c’est la diversité des algorithmes. On peut trouver plusieurs types de modèles mais il faut
choisir le modèle le plus précis et le plus persistent et chaque algorithme a ses spécifications
qui correspond à votre base de données.
Les types d’apprentissage automatique sont décortiqués en 3 types :

• Apprentissage non supervisé.


• Apprentissage supervisée.
• Apprentissage par renforcement.
1.6.1.1 Apprentissage non supervisé :
Pour L’apprentissage non supervisé, c’est une analyse descriptive qui fournit d’une façon directe
des résultats à interpréter et à utiliser. Il existe seulement des entrées et pas de sorties. Ils sont
appelés non supervisée car c’est le rôle de la machine de découvrir, d’apprendre et de générer
le modèle. Dans le cas du non supervisée, on peut trouver quatre approches :
- La segmentation : ayant pour objectif de dégager des profils similaires dans un
même échantillon. C’est à dire des données qui se ressemblent, on les met dans le
même cluster.
- Association : permet de découvrir les règles qui décrivent les grandes parties des
données, telles que les personnes qui achètent X ayant tendance d’acheter Y

8
- Détection des anomalies : consiste à l’identification et à la détection des valeurs
anormales dans tout événement ou observation qui diffèrent du reste des
données.
- Réduction de dimensionnalité : permet de réduire le nombre des variables
d’entrées dans un ensemble de données, plus de nombre de fonctionnalités
d’entrée rendant souvent la tâche de prédiction plus difficile à réaliser.
Exemples d’algorithmes d’apprentissage non supervisé : on peut citer k-MEANS pour la
segmentation et Apriori pour l’association

1.6.1.2 Apprentissage supervisé :


Il utilise généralement une variable cible. Il s’agit d’une analyse prédictive dont le résultat est un
modèle entrainé à partir d’un entrepôt d’apprentissage après le test et la validation dans un
entrepôt de test afin de prédire un résultat. Ce type d’apprentissage regroupe deux types de
problèmes : Régression et Classification.
- Classification : La sortie de la variable cible(X) est une catégorie, telle que
« ROUGE » ou « BLEU » « MALADE » ou « PAS MALADE »
❖ Régression : La sortie de la variable cible(X) sont est une valeur réelle telle que
salaire et poids.

1.6.1.3 Apprentissage par renforcement :


Il est formé par un ensemble d’actions, de paramètres et de valeurs finales. Il sert à arriver à un
résultat optimal à travers l’exploration des différentes actions et possibilités et en évaluant les
résultats obtenus. Citons comme exemple : la planification de trajet pour les véhicules, les jeux,
etc.

1.6.2 Les modèles d’apprentissage automatique « Deep Learning » :


Ce sont des catégories d’apprentissage automatique qui apprennent à travers des
réseaux de neurones sans être guidés par l’homme. Ils sont utiles pour la résolution des
problèmes complexes telle que la reconnaissance du langage naturelle.

1.6.2.1 Réseaux de neurones convolutifs « CNN » :


Ce sont des catégories de réseaux de neurones [4] ayant pour objectif la classification
des images où l’utilisateur en entrée fournit une image sous la forme d’une matrice de pixels. Ils
sont peuvent être utilisés dans l’identification des médicaments à partir de la prédiction des
interactions entre molécules et protéines biologiques, les jeux d’échecs.

1.6.2.2 Réseaux de neurones Récursifs « RNN » :


Les réseaux de neurones RNN [5] est l’algorithme dédié aux données divisées en
séquences et utilisées pour la reconnaissance vocale dans GOOGLE VOICES SEARCH. Il a la
capacité de se souvenir des choses plus importantes à partir des données qu’ils ont reçu utiles
dans la prédiction de la suite. On peut utiliser des données comme les séries temporelles, les
9
données financières, audio, vidéo… Ce sont les données sous forme d’une séquence car à
partir d’une séquence, l’algorithme peut fournir une compréhension plus profonde.

1.6.2.3 Réseaux de neurones de longue mémoire à court terme « LSTM » :


Cet algorithme présente une extension pour les réseaux de neurones récurrentes [6] qui peut
traiter des données en état isolé comme une vidéo complète, dédié aussi aux problèmes de
reconnaissance vocale. Il a la particularité de se souvenir du problème pendant plus longtemps
et possède une structure en chaine pour répéter le même module.

1.6.3 Application WEB :


Une application web est une application hébergée à l’aide d’un serveur et on peut
accéder à cette application via un navigateur web en utilisant une architecture Client-Serveur
contrairement à une application desktop car elle n’a pas besoin d’une installation sur nos
machines.

1.7 Conclusion :
Ce chapitre de nature introductive nous a permis de mettre l’accent sur le cadre général
du projet en effectuant une présentation de l’entreprise qui nous a accueilli durant ce stage, ses
missions et ses objectifs. Puis, nous avons mis en relief notre solution proposée, la
problématique du sujet ainsi que les objectifs de notre système. Nous avons également évoqué
le choix méthodologique à suivre pour arriver à implémenter notre solution proposée.
Le chapitre suivant couvre la 1ère phase du notre méthodologie choisie qui porte sur la
compréhension métier c’est-à-dire la fixation des objectifs DATA MINING, les objectifs métiers
et commerciaux et les différentes technologies qu’on va utiliser pour élaborer cette application.

10
Chapitre 2 : Compréhension métier
2.1 Introduction :
La première étape du processus CRISP-DM commence par la compréhension métier qui
consiste à comprendre l’objectif visé par le client d’un point de vue commerciale. Dans ce
chapitre, on va se focaliser sur les différents objectifs à travers lesquels on va réaliser un plan
d’action qui contribue à la réussite de l’entreprise.

2.2 Objectifs métiers :


Dans cette phase, il est nécessaire qu’un Data SCIENTIST comprenne la problématique
du point de vue marketing, marché, commerciale et techniques. Nous devons donc définir les
objectifs à atteindre et les raisons qui nous poussent à les atteindre.

2.2.1 Détermination des objectifs :


Ceci est une étape importante qui consiste à décortiquer notre objectif global en différents
sous-objectifs métiers dans le but d’avoir une vision sur notre projet. Ces sous-objectifs sont
définis comme suit :
✓ Visualisation des données sous forme de graphiques, rapports et tableaux de bord.
✓ Création d’un modèle de régression pour prédire la masse salariale future afin de mieux
organiser les budgets en prenant en compte les recrutements, les indemnités.
✓ Avoir une interface web conviviale et accessible aux Responsables RH.
✓ Faciliter l’échange des différentes informations concernant la masse salariale au sein
des différents établissement publics.

2.2.2 Critères de réussite DATA MINING :


Les critères qui aboutissent aux succès des projets relèvent de la précision des modèles
qu’on va réaliser. En fait, pour mieux vérifier l’exactitude des modèles, on a besoin d’utiliser des
mesures d’évaluation. Plusieurs critères d’évaluation sont nécessaires pour l’évaluation des
solutions Data Mining que nous allons définir techniquement ainsi que d’autre critères tels que
le déploiement et la robustesse.

2.3 Planification du projet :


La planification est une étape très importante consistant à déterminer les tâches à
réaliser dans un projet afin de suivre l’évolution du projet tout au long de son déroulement et
surtout de fixer la contrainte du temps et allouer les ressources nécessaires à la réalisation des
différentes tâches. Le fait de prévoir la planification au début du projet permet d’atteindre les
objectifs d’exploration des données et commerciaux fixés au début du projet. Une bonne
gestion du projet conduit à une meilleure gestion des objectifs du projet ainsi que les objectifs
stratégiques de l’entreprise.

2.3.1 Plan du projet


La gestion du temps est une compétence obligatoire qui doit être acquise dans l’équipe
pour le bon déroulement du projet. Le plan d’un projet est sous forme d’un fichier formé par les
différentes itérations et les temps estimés pour son élaboration. C’est pour cela qu’on a utilisé
11
le diagramme de GANTT pour gérer le temps et planifier le projet. Le plan prévu pour ce projet
est comme suit : Au début, on a l’identification des spécifications fonctionnelles. Ensuite, la
compréhension du côté métier et le choix des indicateurs. Puis, le nettoyage et la préparation
des données pour l’analyse et par la suite à l’Analyse exploratoire des données pour arriver à la
sélection des variables pertinentes pour la prédiction de la masse salariale. Après ceci, on
passe au choix des modèles appropriés pour arriver à la phase d’évaluation et enfin le
déploiement du modèle élu. La figure ci-dessous présente une vision plus claire sur le plan de
notre projet :

Figure 6 : PLAN D’ACTION DU PROJET

2.3.2 Outils et technologies :


Dans chaque projet, il faut spécifier les technologies qui répondent le mieux aux objectifs
fixés. Le choix des outils techniques a une grande influence sur le projet. Afin d’élaborer notre
projet, on a eu recours aux outils suivants :

➢ PYTHON :

Python [7] est le langage de programmation Open Source le plus manipulé par les
employeurs dans le domaine de l’informatique. PYTHON a occupé une place primordiale dans
plusieurs domaines comme la gestion de l’infrastructure, le développement d’applications web,
le traitement des données, etc.

Figure 7 : LOGO PYTHON

12
➢ JUPYTER :
JUPYTER [8] se définit comme un Notebook de calcul Open source, gratuit qui assure
l’écriture du code informatique et son partage dans le but de collaborer. C’est un atout
indispensable pour les DATA SCIENTISTS. D’une manière générale, c’est une application web
côté client qui assure la création de code, des formules de calcul, des courbes qu’on peut
visualiser ou du texte. Grâce à cet outil, il est possible de visualiser le code, l’exécuter et même
y apporter des changements.

Figure 8 : LOGO JUPYTER

➢ ANACONDA :

ANACONDA est un outil sa distribution possède les caractéristiques : libre et Open Source.
Dédié à la programmation dans un environnement R et PYTHON. Utilisé dans plusieurs
domaines comme le traitement de données, l’intelligence Artificielle et la machine Learning.
D’une manière générale, c’est un gestionnaire d’environnements. Possède une installation
l’environnement PYTHON, des environnements de développements intégrés, Des packages
dédié pour le développement DATA SCIENCE comme PANDAS, NUMPY et KERRAS avec une
installation et mis à jours des paquets invoqués grâce à la commande « CONDA ».

Figure 9 : LOGO ANACONDA

➢ Spring BOOT :

JAVA Spring BOOT [9] est un Framework applicatif pour le langage JAVA. Il est open-
source, assure le développement d’applications web et de micro-services et permet aussi
la création d’API web. Il se caractérise par sa légèreté, sa facilité d’intégration avec les

13
architectures en micro-services et sa simplicité dans la création des APIS de services. Il est
composé par des librairies dont le projet nécessite.

Figure 10 : LOGO SPRING BOOT

➢ ANGULAR :

ANGULAR [10] est une plateforme de développement qui assure la création de pages
web sophistiquées. Il comprend :

• Un Framework qui se base sur des composants permettant la réalisation des


applications web.
• Une intégration d’un ensemble de bibliothèques assurant différentes
fonctionnalités dont on cite comme exemples : le routage, la gestion des
formulaires ainsi que la communication entre le client et le serveur.
• Une variété d’outils de développements dont le but est d’effectuer la création,
le test et la mise à jour du code.

Figure 11 : LOGO ANGULAR

2.3.3 Bibliothèques utilisées :

❖ PANDAS :
PANDAS se définit comme un package python. Il est de type open-source qui nous offre
des structures de données et des atouts pour l’analyse de données de haute performance et se
caractérise par sa facilité d’utilisation pour les données étiquetées dans PYTHON. Son
acronyme est PYTHON AND DATA ANALYSIS library. Il sert à effectuer différentes opérations de
manipulation rapides et faciles des données comme la lecture, l’agrégation et la visualisation
des données.

14
❖ NUMPY :
NUMPY signifie POOR NUMERICAL PYTHON. C’est un outil idéal pour le calcul
scientifique et la réalisation de différentes opérations de base et des opérations sophistiquées
sur les tableaux et les matrices.

❖ MATPLOTLIB :

Il présente un outil pour la visualisation et grâce à lui, on peut tracer des histogrammes,
des graphes, etc.

❖ SEABORN :

C’est une bibliothèque dédiée à la visualisation basée sur MATPLOTLIB tout simplement,
c’est une extension de MATPLOTLIB mais avec des fonctionnalités avancées. Elle est sous forme
d’une interface de haut niveau qui nous permet dessiner des graphes dédiés aux statistiques
informatives.

❖ SKLEARN :

C’est une bibliothèque fournissant des outils réservés pour la Machine Learning et la
Data Science dans Python.

❖ TENSORFLOW :

Cette bibliothèque appartient aux frameworks open-source, elle est développée par des
chercheurs GOOGLE pour l’exécution de Machine Learning, Deep Learning et d’autres tâches
en relation avec l’analyse statique et la prédiction. Elle a pour but la manipulation de l’ensemble
de données sous forme de nœuds de calcul, et les arrêtes qui joint les nœuds représentent les
matrices multidimensionnelles.

Figure 12 : LOGO DES BIBLIOTHEQUES PYTHON

15
2.4 Conclusion :
Durant ce chapitre, nous avons mis l’accent sur les objectifs du projet du point de vue
métier, ensuite les objectifs DATA MINING qui nous mènent à l’élaboration d’un plan de travail
que nous suivrons ultérieurement. Nous avons également détaillé les outils manipulés afin
d’arriver à notre finalité. Dans le deuxième chapitre, nous procèderons à la compréhension des
données.

16
Chapitre 3 : Compréhension des données
3.1 Introduction :
La deuxième phase du processus CRISP-DM nécessite d’avoir un accès aux donnés qui
est dans le répertoire des ressources du projet. D’abord, on commence par le chargement des
données qui est un point important dans la compréhension des données. Un bon stade de
prétraitement résulte du fait que les données seront assez claires et faciles à comprendre. On
procède à l’identification de la qualité des données disponibles pour faire la liaison entre les
données et leurs significations dans le côté métier.

3.2 Source des données :


L’entreprise nous donne l’accès à un fichier texte contenant les informations qui
concerne les détails de la paie du ministère de la culture, de l’année 2010 jusqu’à l’année 2020,
que nous avons transformé ensuite en un fichier XLSX. Nous avons également à notre
disposition un autre fichier XLSX dédié aux recrutements durant la même période

3.2.1 Chargement des données :


Les données fournies par l’entreprise sont stockées dans un fichier texte. Les valeurs
sont séparées par des points virgules. Donc, on a commencé par stocker ces données dans un
fichier CSV. Voici le fichier qui concerne le détail de la paie dans la figure 13 :

Figure 13 : DETAILS DE LA PAIE


Ensuite, on passe à sauvegarder ces données dans un Data frame Pandas. Puis, on fait
la conversion au format CSV puisqu’il est de grande taille, donc, on ne peut pas le convertir
directement pour avoir au final un DATASET qui se compose de 799914 lignes et 38 colonnes.

17
Figure 14 : CONVERSION DU FICHIER TEXTE D’ENTREE

3.2.2 Aperçu des données :

3.2.2.1 Aperçu des données du fichier « detail_paie » :


Dans cette partie, on met l’accent sur un aperçu de la base de données dans le but de
donner une description du format, la qualité et la nature des données disponibles. Chaque ligne
présente des valeurs de différents types numériques, chaîne de caractères ou de type DATE
TIME. Les colonnes représentent des significations assignées à ces valeurs. Comme présenté
ci-dessous :

Figure 15 : JEU DE DONNEES

3.2.2.2 Aperçu des données du fichier recrutement :


La figure ci-dessous met en relief notre jeu de données qui concerne la variation du
recrutement des agents de la période 2010 jusqu’à 2020 :

Figure 16 : DATASET18
RECRUTEMENT
3.3 Description des variables :

3.3.1 Description des variables « detail_paie » :


Après avoir stocké notre DATASET dans un fichier CSV, nous allons identifier les
variables qui existent dans notre jeu de données et comprendre leur signification.

Figure 17 : COLONNES DE LA DATASET PAIE

• codetab : représente le code de l’établissement. Dans notre cas, c’est le ministère de la


culture.
• Matricule : représente la matricule de l’employé.
• Mois : C’est le mois dans lequel le salarié reçoit un montant des indemnités.
• annee : ce sont les années de 2010 à 2020 relatives au détail de la paie du ministère de
culture.
• type_paie : se définit par la méthode avec laquelle un salarié est rémunéré, il peut être
un salaire fixe ou un paiement par heure.
• codind : utilisé pour l’identification des différents formes d’indemnités. Ils peuvent être
des indemnités de bonus, par heures supplémentaires, prime ou avantages donnés par
les sociétés comme les tickets restos ou les véhicules.
• montant_ind : C’est le montant des indemnités reçues par l’employé.
• nature_ind : ce sont les catégories d’indemnités fournies aux salariés. Par exemple :
prime de performance, indemnité de déplacement ou de fidélité.
• grd : signifie le rang d’un employé dans son établissement dont on cite comme exemple
ouvrier categorie3 ou deuxième secrétaire de réalisation …
• cat : c’est la catégorie de l’employé, par exemple : utiliser les chiffres A,B,C,D pour
regrouper les employés.
• corps : correspond au corps de l’emploi c’est-à-dire la position occupée par le salarié
par exemple poste de gestionnaire de vente.
• codsfam : correspond à l’état civile de l’employé si mariée, célibataire , divorcé ou autre
• indice : il peut référer à l’indice de rémunération de l’employé ou de satisfaction de
l’employé pour son travail.
• echellon : correspond à une classification des employés selon l’ancienneté, le grade et
l’expérience.
• Nature : signifie la nature de l’emploi, par exemple : Fonctionnaire stagiaire, Agent
temporaire.
• efonc : C’est la fonction de cet employé comme Directeur général, sous-directeur…

19
• fonc : ce sont des fonctionnalités des agents dont on cite comme exemples : Directeur
régionale ,Econome d’établissement …
• date_naissance : c’est la date de naissance de l’employé.
• Date_ent : c’est la date ou l’employé commence son emploi.
• dire : correspond à l’équipe ou la direction chargée de la gestion des ressources
humaines, recrutements,…
• gouv : correspond au gouvernorat.
• natorg : c’est la nature de l’organisme.
• sitfam :l’état civile de l’employé par exemple mariée ou divorcé.
• sexe :cela signifie que l’employé est Homme, Femme ou non renseignée.

3.3.2 Description des variables « recrutement » :


Nous passons maintenant à l’identification des variables du fichier « recrutement » pour
comprendre leurs significations : il existe des variables dans le fichier « detail_paie » qui se
trouvent aussi dans « recrutement ». Ceux qui diffèrent sont les variables suivantes :

• nature_rec : correspond au nombre de recrutements pour chaque année.


• nature agent : signifie la classification de l’agent public ou sa fonction dans son
établissement public. Que ce soit temporaire, contractuel, Stagiaire ou agent
temporaire.
:

Figure 18 : COLONNES DE LA DATASET RECRUTEMENT

3.4 Exploration des données :


L’analyse exploratoire des données est une étape cruciale ayant pour objectif de
dégager une connaissance ou un savoir à partir d’une grande quantité de données. Elle nous
permet d’extraire une information utile à partir de ces données.
On classifie nos données en données numériques et catégoriques.

20
Variables catégoriques :

Figure 19 : COLONNES DES VARIABLES CATEGORIQUES

Variables numériques : ce sont les variables ‘montant_ind’, ’parag’ , ’sparag’

Figure 20 : SEPARATION COLONNES CATEGORIQUES ET NUMERIQUES

On a effectué cette classification par la séparation des variables numériques des variables
catégorielles dans Notre DATASET.

21
3.4.1 Description des données :
Cette partie est réservée pour l’analyse de notre variable cible qui est
« montant_ind_masse_salariale ». Le but principal de cette application est de prédire la masse
salariale : nous commençons alors par le calcul de la masse salariale qui est la somme des
montants indemnités pour chaque mois et on ajoute ces valeurs à notre jeu de données :

Figure 21 : CALCUL DE LA MASSE SALARIALE

Passons maintenant à l’analyse de la variable cible « montant_ind_masse_salariale ». Ce qui


nous permet d’avoir une bonne idée à ce sujet ce sont des informations telles que la moyenne,
la valeur minimale et maximale. Nous visons à faire une description bien détaillée de la colonne
cible qui est « montant_ind_masse_salariale » comme suit :

Figure 22 : DESCRIPTION DE LA COLONNE CIBLE

D’après cette figure, nous pouvons déduire que nous avons un nombre de 799914 masses
salariales. On peut remarquer qu’il n’existe pas une grande différence entre la valeur minimale
qui est de 11 435 670 avec la valeur maximale qui est de 14 125 860 ce qui explique que nous
n’avons pas de valeurs qui ne sont pas logiques que nous devons traiter. On peut constater que
la médiane dont la valeur 12 784 630 est un peu inférieure à la moyenne 13 032 530 .
Autrement dit, la distribution des valeurs de la variable cible est légèrement inclinée vers la

22
gauche (elle a une queue de distribution plus courte à gauche). Cela signifie que la majorité des
valeurs sont regroupés autour d’une valeur légèrement inférieure à la moyenne. Cependant, il y
a quelques valeurs plus élevées ou ce qu’on appelle OUTLIERS qui tirent la moyenne vers le
haut.

3.4.2 Test de normalité :


On peut dire que la distribution n’est pas parfaitement uniforme et certaines masses
salariales sont plus anormales que d’autres :

Figure 23 : HISTOGRAMME DE TEST DE NORMALITE DE LA MASSE SALARIALE

A partir du graphe de test de normalité, nous pouvons observer que pour une masse
salariale d’environ de 1.15e+07, la fréquence est de l’ordre de 0.5e-6, ce qui indique un nombre
réduit d’occurrences de masse salariales à cette valeur. Entre 1.25e+07 et 1.30e+07, la
fréquence s’agrandit d’une manière considérable jusqu’à atteindre environ de 1.2e-06, puis, on
obtient un pic de 1.75e-6. Cela suggère une augmentation des montants_ indemnités dans
certains mois. Ensuite, nous remarquons une diminution de la masse salariale de 0.6 e-06 qui
correspond à ceux ayant la masse salariale de 1.35e+07 ; cela indique qu’une majorité des
montants indemnités est en dessous de cette valeur.

Figure 24 : MESURES D’ASYMETRIE ET DE KURTOSIS

23
D’après cette figure on remarque une SKEWNESS de valeur négative -0.2481, donc, on
peut déduire une légère asymétrie vers la gauche, mais, en même temps proche de 0, ce qui
indique une asymétrie relativement faible d’où la distribution de la colonne cible est symétrique
de façon approximative. Concernant le kurtosis qui nous a donné la valeur -0.0054, c’est un
léger aplatissement par rapport à une distribution normale. Donc on peut déduire de ces deux
métriques que la colonne cible se rapproche d’une distribution normale.

3.4.3 Corrélation :
Pour mieux avoir une idée sur nos variables, il est nécessaire de comprendre les
relations entre nos variables. Pour effectuer cette comparaison entre les différentes variables
de notre jeu de données, on a eu recours à la matrice de corrélation :

Figure 25 : MATRICE DE CORRELATION

Figure 26 : IDENTIFICATION DES VARIABLES CORRELEES

La figure ci-dessus met en exergue la corrélation entre les variables. On peut conclure
que les variables « echellon » et « indice » sont fortement corrélées et c’est normal car ces deux
variables nous donne une idée sur le niveau de classification de l’employé côté expérience,

24
performance et compétence dans le secteur public. On trouve aussi une corrélation forte entre
les deux variables « fonc » et « efonc » qui nous indiquent les différentes fonctions occupées par
les employés du secteur public. Même déduction pour « cat » et « codfam » car ce sont des
niveaux de classification des employés du secteur public selon le statut ou le niveau de
compétence. Dans le cas de l’application de l’apprentissage automatique, il n’est pas
nécessaire de traiter les variables de corrélations fortes. Donc, on procède à l’élimination d’une
entre elles.

3.4.4 Distribution de la variable Cible :


Afin d’identifier les OUTLIERS (les valeurs aberrantes) qui a un effet sur notre modèle de
prédiction, nous avons eu recours au BOXPLOT suivant :

Figure 27 : BOXPLOT DE LA VARIABLE CIBLE

D’après le BOXPLOT de la variable cible, on remarque l’absence des points individuels


au-dessus de l’extrémité supérieure du diagramme en boîte, ce qui indique l’absence des
valeurs aberrantes.

3.4.5 Analyse des valeurs manquantes :


Cette étape est primordiale car les valeurs manquantes présentent un manque
d’information, ce qui nuit à la qualité de l’analyse et influe sur la qualité de prédiction et peut
causer des résultats erronés. Dans la figure ci-dessous, on met en évidence les valeurs
manquantes à travers un script qui nous donne des résultats dans chacune des datasets
« detail paie » et « recrutements ».

25
Figure 28 : SCRIPT DE CALCUL DES VALEURS MANQUANTES

Figure 29 : NOMBRE DE VALEURS MANQUANTES DE CHAQUE VARIABLE

On peut remarquer qu’il existe des variables comme « parag » et « sparag » qui n’ont
aucun effet sur la prédiction et qui possèdent un taux de valeurs manquantes qui est égal à 55%
Donc, on peut les éliminer. Concernant les autres variables ayant un taux faible, on peut les
traiter facilement par le remplissage des variables d’une valeur estimée dans les champs vides
comme la moyenne par exemple. Les valeurs manquantes sont dues au mauvais remplissage
des valeurs dans notre base qui nous oblige à remplacer ces valeurs par d’autres qui sont
proches de la réalité ou l’élimination de toute la colonne quand elle contient un taux élevé de
valeurs manquantes. La figure ci-dessous met en relief le calcul du pourcentage des valeurs
manquantes :

Figure 30 : CALCUL DU POURCENTAGE DE VALEURS MANQUANTES

26
3.5 Description des données :
3.5.1 Analyse de la répartition de « montant_ind » par mois :
Tracer la distribution de la variable « montant_ind » par mois est important car il permet
d’aider les décideurs à la planification budgétaire à travers le suivi du montant des indemnités
au fil de temps pour réduire l’effet des indemnités sur la masse salariale. La figure ci-dessous
nous donne un éclaircissement sur la variation des montants des indemnités au cours du
temps pour savoir les valeurs aberrantes :

Figure 31 : VARIATION DES MONTANTS INDEMNITES PAR MOIS


D’après l’observation de la courbe ci-dessus, on observe pour tous les mois que la
valeur du « montant_ind » est comprise entre 175 et 200 pour tous les mois et pour le mois
d’Octobre et Novembre ce sont les mois qui se caractérisent par une élévation du taux de
montant d’indemnité. Donc, il n’existe pas une anomalie de données, la variabilité est normale
et concernant les mois d’Octobre et Novembre ils sont associés à des primes ou rémunérations
pour les employés. Etudions maintenant la variation du « montant_ind » par année :

3.5.2 Analyse de la répartition de « montant_ind » par année :

Figure 32 : VARIATION DES INDEMNITES PAR ANNEE


27
En traçant le BOXPLOT qui concerne la variation des montants indemnités par année, on
remarque que les années 2014 et 2017 se manifestant par des valeurs supérieures, au-dessus
du moustache supérieure, ce qui reflète la présence des valeurs aberrantes qui peuvent être
des erreurs de saisie ou relatives à la collecte des données, mais pas forcément des valeurs
anormales des indemnités pour ces deux années, plutôt une variation naturelle ou des
négociations contractuelles dans les établissements publics. Donc, on peut conclure que le
« montant_ind », le mois et année sont des variables qui affecte la valeur de la masse salariale.

3.5.3 Analyse de la répartition de « montant_ind » par « nat_indemnité »:

Figure 33 : VARIATION DES INDEMNITES PAR NATURE INDEMNITES

On a tracé la courbe de la variation des « montants_ indemnités » par « nature


indemnités » afin d’identifier les natures indemnités ayant les montants les plus importantes.
On a remarqué différents pics relatifs aux différents « natures indemnités », par exemple : on
remarque pour la valeur 3 de nature indemnités un pic de 100 et pour la valeur de 7 il y a une
élévation du taux de montant indemnité qui dépasse le 400, cela signifie que la politique de
rémunération diffère d’une nature à l’autre ou bien des valeurs de saisies erronées relative à
différents natures.

3.5.4 Analyse de la répartition du taux de recrutement par année :

On commence notre description de la variation du recrutement par le calcul du total des


recrutements qui se calcule par la somme de nombre de recrutements qui est la colonne
« Nature_rec » par année. La figure ci-dessous met en relief le script de la génération du
« total_recrutements » :

Figure 34 : SCRIPT DU CACUL DU TOTAL RECRUTEMENTS


28
Figure 35 : AFFICHAGE DU TOTAL RECRUTEMENTS

Maintenant, on passe à la génération de l’histogramme qui nous aide à la visualisation


du total des recrutements par année :

Figure 36 : HISTOGRAMME TOTAL RECRUTEMENTS PAR ANNEE

D’après l’histogramme ci-dessus, on remarque des variations pendant la période allant


de 2010 jusqu’à 2020, par exemple : en 2011, la valeur a dépassé 250000, puis, elle a diminué
en 2012 et a augmenté de nouveau pour atteindre environ 200000. Ensuite, elle a connu une
chute importante en 2020 et a atteint la valeur de 37000 environ, ce qui est logique et peut
être dû à plusieurs facteurs comme l’application de la stratégie du gouvernorat tunisien, les
recrutements des agents, ou les variations dans le marché de l’emploi au fil du temps.

29
3.5.5 Analyse de la variation de la masse salariale par mois :

Figure 37 : ANALYSE DE LA MASSE SALARIALE PAR MOIS

Dans la figure ci-dessus relative à la variation de la masse salariale par mois, on


constate des variations de la masse salariale. En effet, on trouve une élévation de la masse
salariale dans le mois de mars atteignant 1.35e+7, un grand pic dans le mois du Juin qui est égal
à 1.40e+7 puis une chute dans le mois du Juillet vers la valeur de 1.13 e+7 puis augmente de
nouveau en Décembre et dépasse 1.40e+7.On peut expliquer les résultats du mois de Mars par
des rémunérations annuelles, pour le mois du Juin aussi par des paiements d’indemnités de
performance ou de fin d’année pour certains agents. Concernant la chute du mois du Juillet, on
peut interpréter cette chute par une augmentation considérable du taux de départs des agents
du ministère de culture, une réduction des recrutements puis une augmentation le mois suivant
qu’on peut expliquer par une mauvaise gestion du budget du ministère ainsi que par les
recrutements des agents saisonnières. Pour le mois de Décembre, cette élévation anormale est
due à la mise en place de nouveaux primes de fin d’année.

3.6 Conclusion :
Au cours de ce chapitre, nous avons réalisé une explication de la démarche que nous
avons suivi pour garantir l’étape de compréhension de données. Dans le prochain chapitre,
nous allons traiter et corriger les données pour assurer la fiabilité des résultats de la prédiction.

30
Chapitre 4 : Préparation des données
4.1 Introduction :
La préparation des données constitue l’une des phases les plus importantes et
nécessite beaucoup de temps dans un projet de Data Mining. Elle nécessite environ 70%
environ du temps et de l’effort nécessaires à un projet. En fait, accorder de l’importance aux
différentes phases de compréhension des données côté métier nous aide à minimiser des
coûts considérables. Nous allons voir comment nos données sont transformées et préparées
pour la phase de modélisation qui fera l’objet de notre prochain chapitre.

4.2 Ajout de nouvelles colonnes :


Dans le but d’avoir des informations pertinentes, nous allons ajouter des colonnes
externes afin d’assurer l’enrichissement des données dont on dispose et qui a un impact sur la
qualité de notre base, comme le total des montants d’indemnités regroupés par année et le
type de paiement. De plus, on ajoute « total_recrutements » qui est la somme de nombre de
recrutements par année déjà calculée dans la DATASET « recrutement ». Les figures
suivantes présentent le script et les résultats du calcul de la masse salariale :

Figure 38 : SCRIPT DU CALCUL DE LA MASSE SALARIALE

Figure 39 : AFFICHAGE DE LA COLONNE MASSE SALARIALE

31
4.3 Nettoyage des données :
Dans la plupart des projets de Data Science, il est pratiquement impossible d’avoir un cas
parfait et une base de données aussi propre, homogène et complète. Ainsi, il faut procéder à la
correction de certaines ambiguïtés. Ces problèmes doivent être corrigés manuellement à
travers la modification du fichier XLSX ou l’utilisation d’un script python pendant la phase de
prétraitement. Alors, nous allons insérer des données par défaut pour l’amélioration de la
qualité de nos données. Il faut choisir la transformation la plus appropriée selon l’objectif
métier qui conduit à une bonne performance du modèle à implémenter.
Dans ce cas, nous avons proposé quelques modifications nécessaires relatives aux données
manquantes et la suppression de certaines colonnes inappropriées n’ayant aucun impact sur la
qualité de nos données.

4.3.1 Suppression des colonnes inutiles :


Dans cette partie, nous décidons quant ’à la partie de données que nous allons utiliser dans la
partie de modélisation. Nous allons justifier l’inclusion ou l’élimination c’est-à-dire les données
qui vont être utilisées et celles qui ne vont pas être eliminées dans le cas de notre projet.

• COLONNES A UTILISER :
'matricule'/'mois'/'annee'/'type_paie'/'codind'/'montant_ind'/'nature_ind'/'grd'/'cat','corps'/'cod
sfam'/ 'indice'/ 'echellon'/ 'nature'/ 'fonc'/ 'dire'/ 'sdir'/ 'serv'/ 'centreg'/ 'gouv'/ 'gouvn'/
'natorg'/'budg'/'sitfam'/'sexe'/'total_recrutements'/'montant_ind_total'

• COLONNES A EXCLURE :
'codetab'/'num_ligne'/ 'parag'/ ‘sparag’

Ces attributs n’ont pas un impact sur la masse salariale ettcontiennent un nombre
élevé de valeurs manquantes ou comme la colonne ‘codetab’ qui contient la même valeur pour
toutes les lignes. Dans ce qui suit, nous allons détailler le processus de traitement des valeurs
manquantes :

Figure 40 : SUPPRESSION DES COLONNES INUTILES

4.3.2 Extraction des valeurs numériques :


Il existe des attributs de type objets qui contiennent des informations à extraire tels que :
32
Pour les colonnes ‘ date_ent’ , ‘date_naissance’, nous allons transformer les dates du type
objets aux types de chaînes de caractères puis nous faisons la séparation des dates entières en
années ,mois et dates. Pour effectuer ça, nous avons eu recours à une fonction split (data, nom
de la colonne). Voici le script de division de la colonne date et les résultats obtenus :

Figure 41 : SCRIPT DE TRANSFORMATION DE LA COLONNE DATE

Figure 42 : COLONNE DATE MODIFIEE

4.3.3 Conversion des types de données :

Avant de procéder à l’ENCODING des variables, nous avons procédé à transformer les
colonnes de type objet en des colonnes de type chaîne de caractères. Pour ce faire, nous avons
procédé à la préparation d’une fonction dédié à la conversion de type OBJECT en STRING :

Figure 43 : CONVERSION DES VARIABLES DE TYPE OBJET

33
4.3.4 Label Encoder :
Le Label Encoder est une technique visant au prétraitement des données qui sert à
convertir les variables catégorielles en variables numériques. D’une manière générale, il s’agit
de remplir les catégories par des nombres allant de 1 à n-1 tel que n est le nombre de
catégories distinctes de la variable. Pour l’application de cette technique, nous avons eu
recours à la création d’une instance Label Encoder, ensuite nous appliquons la transformation :

Figure 44 : LABEL ENCODING

On peut citer comme Exemple d’application de Label Encoder pour la variable ‘nature’ :

nature : [2 9 3 1 8 '2' '3' '9' '8' '5' '1' 'A' 'B' '4' '7' 5 4] => nature: [1 7 2 0 6 4 8 9 3 5]

4.3.5 Manipulation des données manquantes :


Une valeur manquante est définie par la partie du jeu de données qui semble vide ou
qui est une valeur nulle. Cela peut être dû aux données manquantes lors de la recherche ou la
collecte de données.

Les données manquantes ont des effets négatives sur la qualité du modèle ML,
affecte la distribution globale de données et réduit l’efficacité de l’estimation. C’est alors qu’on
a recours à l’imputation qui est la solution idéale et qui a pour but de remplacer les valeurs
nulles ou manquantes par une valeur particulière dans l’ensemble de données.

L’imputation peut se faire par l’une des techniques suivantes :

✓ Imputation par la moyenne.


✓ Imputation par la médiane.
✓ Imputation en utilisant un modèle (KNN, Régression Linéaire, etc.)

Dans notre jeu de donnée, nous allons utiliser l’imputation par modèle et on a utilisé
l’estimation des valeurs manquantes par la Régression linéaire et la stratégie d’imputation par
la moyenne. Pour cela, nous avons eu recours à la création d’un modèle de régression linéaire
ayant pour objectif l’estimation des valeurs manquantes en fonction des valeurs existantes

34
dans les données à travers l’instanciation de la classe ‘LinearRegression() ’. Ensuite, nous
attribuons une spécification de la stratégie qui est la moyenne ‘mean’ après la création d’un
simple imputeur ’Simple Imputer’ qui va remplir les valeurs vides ou nulles par la moyenne des
valeurs existantes dans chaque colonne. Effectivement, nous représentons les valeurs
manquantes par NAN et dans notre code nous faisons l’attribution d’une valeur binaire à
chaque valeur imputée. Puis, nous faisons une liaison entre le modèle de régression linéaire
avec l’estimateur de l’imputeur moyennant la fonction ‘estimator_’, cela indique au imputeur
d’utiliser le modèle pour l’estimation des valeurs manquantes méthodiquement. Lorsqu’on
appelle la méthode ‘fit_transform’, l’imputation des valeurs manquantes aura lieu en fonction
des valeurs existantes dans ces colonnes et le résultat va être stocké dans un DATAFRAME
appelé ‘X_IMPUTED’ :

Figure 45 : IMPUTATION DES VALEURS MANQUANTES

Puis, nous allons vérifier à travers le script de calcul des valeurs manquantes l’existence
des colonnes vides et voir les résultats :

Figure 46 : VERIFICATION DES VALEURS MANQUANTES

35
4.3.6 Matrice de corrélation :
La matrice de corrélation est tout simplement une matrice de coefficients de
corrélations statistiques calculés sur plusieurs variables prise deux à deux. Elle assure la
détection des relations rapidement.

Figure 47 : MATRICE DE CORRELATION

On a parlé de la matrice de corrélation des variables entre eux et on a fourni un script


qui nous a donné une idée sur les variables ayant une forte corrélation donc on procède à
l’exclusion de l’un des deux car il n’est pas nécessaire d’utiliser des variables fortement
corrélées entre elles.

Figure 48 : ELIMINATION DES VARIABLES FORTEMENTS CORRELEES

4.4 Conclusion :
Dans ce chapitre, on a appliqué tout un processus d’analyse et de traitement des
données. Nous avons commencé par la suppression des colonnes inutiles. Puis, nous avons
converti les valeurs catégoriques en numériques moyennant du Label Encoder. Nous avons
ensuite rempli les valeurs manquantes, nous avons détecté et supprimé l’une des variables
ayant une corrélation forte en se basant sur la matrice de corrélation. Il est temps de
commencer la modélisation dans le chapitre suivant.
36
Chapitre 5 : Modélisation
5.1 Introduction :
Maintenant, notre jeu de données est bien nettoyé et préparé à être exploité pour les
modèles de prédiction. En fait, la modélisation est effectuée sur plusieurs itérations. Les
experts en Data Mining exécutent plusieurs modèles en utilisant des paramètres par défaut de
plusieurs algorithmes, puis affinent ces derniers en réalisant un ajustement des paramètres ou
reviennent vers la phase de préparation des données pour faire les modifications requises par le
modèle de leur choix. Dans ce chapitre, nous allons détailler les algorithmes de prédiction,
leurs spécifications et fonctionnement.

5.2 Techniques de modélisation :


La modélisation des données est une solution idéale pour la croissance de toute
entreprise qui ne comprend que les décisions qui se base sur des algorithmes d’apprentissage
automatique. Avoir des données au bon format et l’application des algorithmes servent à
obtenir des réponses sur plusieurs questions et à atteindre les objectifs du côté commerciale
facilement et rapidement afin de permettre aux décideurs de résoudre les problèmes en se
basant sur les résultats de modélisation. Pour assurer une bonne modélisation, il existe
plusieurs exigences qu’on doit prendre en considération comme la nature des variables, la
quantité des données, le temps d’apprentissage et le nombre de paramètres :
✓ La quantité des données : Si on dispose d’autant d’informations, il devient de plus en
plus important pour les établissements et entreprises d’accéder et analyser les
données pertinentes pour prédire les résultats et améliorer les services.
✓ Temps d’apprentissage : La durée d’apprentissage ne dépend pas du type d’algorithme
qu’on va analyser, mais, elle a une relation avec le temps de traitement et de la
complexité du calcul des algorithmes, c’est-à-dire, le temps que met l’algorithme pour
fournir un résultat prêt à la manipulation. Prenons l’exemple d’une transaction
bancaire, le client ne peut pas attendre le résultat d’un modèle pour envoyer la réponse
à une transaction bancaire que ce soit frauduleuse ou pas.
✓ Nombre de paramètres : Lors de l’application d’un algorithme, on doit procéder à
configurer les paramètres qui sont les valeurs qui exercent une influence sur le
comportement des algorithmes. Citons comme exemple le taux d’erreur ou le nombre
d’itérations. Les algorithmes ayant un grand nombre de paramètres nécessitent
généralement plusieurs essaies afin d’avoir une combinaison idéale qui est compatible
avec notre base de données.
✓ Nature des variables : les variables ont un impact sur la prédiction d’un modèle. Les
variables numériques par exemple sont faciles à manipuler par les algorithmes vu leur
soumission à des opérations telles que la multiplication et l’addition. Tandis que les
variables catégoriques comme la catégorie d’un produit, type de contrats… nécessitent
un encodage de telle sorte qu’elles soient utilisées d’une manière efficace.

37
5.3 Choix du modèle :
Le choix du modèle est basé sur la nature des données mises à notre disposition. Dans
notre projet, notre variable cible est la masse salariale qui représente une variable quantitative
continue. On est face alors à un problème de régression.

5.3.1 Division des données en Train et Test :


Les données que nous devons manipuler sont généralement divisées en données de test
et en données d’apprentissage. L’ensemble d’apprentissage génère une sortie connue et le
modèle effectue l’apprentissage sur ces données dans le but d’être capable de généraliser sur
d’autres données ultérieurement. Concernant l’ensemble de test, c’est le sous-ensemble
réservé pour tester la prédiction de notre modèle.
Dans la figure ci-dessous, le paramètre « test-size = 0.2 » à l’intérieur de la fonction test split est
une indication des données conservées pour le test. C’est généralement autour de 80/20 ou
70/30 de l’ensemble de base.

Figure 49 : DIVISION DES DONNEES EN TRAIN ET SET

5.3.2 Validation croisée :


La validation croisée est l’une des techniques d’apprentissage automatique. C’est un
modèle de technique statistique dédié pour le test des performances du modèle. On
commence par la division des données en : données d’apprentissage (la majorité de données)
et données de test. Puis, on procède à la formation du modèle juste avant l’évaluation du test.
La valeur ajoutée de cette technique est la division de notre jeu de données en k parties égales
et puis chacune des k parties est utilisée comme données de test et le reste c’est-à-dire le (k-1)
est utilisé comme données d’apprentissage. L’étape finale consiste à répéter les phases dans
différents points de données pour garantir un bon résultat.

Figure 50 : CROSS VALIDATION

38
5.3.3 Test des fonctionnalités :
La sélection des fonctionnalités est un processus par lequel on sélectionne les
fonctionnalités automatiquement qui contribuent le plus à la variable cible. Le fait d’avoir des
fonctionnalités qui ne sont pas pertinentes dans les données a des conséquences dans la
réduction de la précision des modèles et permet au modèle d’apprendre à partir de
fonctionnalités non pertinentes.

Figure 51 : TEST DES FONCTIONNALITES

D’après l’histogramme précédant, nous avons pu identifier les attributs qui ont un impact sur la
masse salariale qui sont :
« mois »,« montant_ind »,cod_ind », »echellon », »indice », «cat », « montant_ind_total », « total_re
crutements »

5.3.3 Sélection des fonctionnalités avec KBEST :


C’est une technique relative à la sélection des caractéristiques les plus importantes
ayant pour objectif de dégager un nombre K de meilleurs variables explicatives ou
caractéristiques à partir d’un ensemble large de variables explicatives en se basant sur leurs
scores par rapport à la variable à prédire. Le principe est simple : on crée l’objet ‘SelectKBEST’
et on l’entraine avec nos variables d’entrainement. Le calcul de score se fait à l’aide de la
fonction de score qui est ‘f_regression’ dans notre cas :

Figure 52 : SCRIPT DE SELECTION DES FEATURES USING KBEAST

39
5.4 Construction du modèle de prédiction :
Après avoir une idée sur les critères sur lesquelles se base l’apprentissage des modèles,
nous passons maintenant à appliquer nos modèles de régression.

5.4.1 Régression linéaire :


C’est un modèle qui consiste à chercher une ligne droite qui se rapproche mieux de
l’ensemble de points sur un graphe. Ces estimations sont utilisées pour l’explication d’une
relation entre la variable dépendante et une ou plusieurs variables indépendantes. La relation
d’une variable dépendante et une autre variable indépendante est exprimée par une simple
équation de régression qui est de formule :
Y=β0+β1X1+β2X2+…+βpXp+ϵ
Ainsi, on va citer la signification de chaque variable :
Y : c’est la variable dépendante
X1..p : ce sont les variables explicatives
B0 : correspond à l’ordonnée à l’origine
B1..p : ce sont les coefficients de pente de chaque variable explicative
ϵ : c’est l’erreur résiduelle qui signifie l’écart entre les valeurs observées et les valeurs prédites.
L’objectif principal de la régression linéaire est de minimiser les coefficients dans le but d’avoir
un minimum des carrés de résidus.

Figure 53 : REGRESSION LINEAIRE

40
5.4.2 DECISION TREE REGRESSOR :
5.4.2.1 Implémentation :
C’est un modèle de régression linéaire qui établit une relation entre les variables
d’entrées et la variable cible en utilisant un arbre de décision. D’abord, le modèle commence
par diviser l’ensemble de l’entrainement en sous-ensembles de manière récursive. A chaque
phase, il procède au choix de la caractéristique et le seuil qui arrive à minimiser l’erreur de
régression. L’arbre est construit jusqu’à obtenir un critère d’arrêt qui est l’un des deux
paramètres qui est la profondeur maximale de l’arbre ou un nombre minimal d’échantillons par
feuille. Chaque feuille de l’arbre contient une valeur de prédiction qui est en générale la
moyenne des valeurs dans cette variable cible. Parmi les avantages de cet algorithme, c’est la
simplicité qui est le fait qu’on peut visualiser sous forme d’arbre d’une part. D’autre part, on a la
possibilité de générer des relations non linéaires et des interactions entre les caractéristiques.
Les figures ci-jointes représentent l’application de l’algorithme Decision Tree Regressor.
Parmi ses inconvénients, c’est la possibilité d’un surajustement si l’arbre n’est pas régularisé
correctement.

Figure 54 : DECISION TREE REGRESSOR

5.4.2.2 Visualisation de l’arbre de décision :


Nous avons construit l’arbre de décision en utilisant la bibliothèque « Graphviz », puis,
nous avons effectué l’exportation de l’arbre de décision avec « sklearn.tree ». Ensuite, nous
avons utilisé « export_graphviz » pour assurer la réalisation de l’arbre de décision au format
DOT et nous avons précisé les caractéristiques qui sont les colonnes qui nous aide à étiqueter
les nœuds de l’arbre. Enfin, nous avons enregistré l’arbre de décision au format PDF moyennant
« graph.render(« decision tree ») ». La figure ci-dessous nous donne un aperçu de l’arbre de
décision :

41
Figure 55 : ARBRE DE DECISION

La racine a été segmentée avec la variable « mois » et admet la valeur seuil « 11.5 ». La
branche à gauche (True) correspond à la condition « mois<=11.5 », la branche à droite (False)
correspond à la condition « mois>=11.5 ». Chaque chemin aboutissant à une feuille correspond
à une règle.

5.4.3 RANDOM FORREST REGRESSOR :


5.4.3.1 Implémentation :
C’est un modèle basé sur la technique d’arbre aléatoires ayant pour objectif
l’amélioration des performances de la prédiction en faisant l’agrégation des prédictions
individuelles de chaque arbre. Pour la construction de chaque arbre de décision, lors de la
phase d’entrainement des données, on obtient un échantillon appelé BOOTSTRAP, les sous-
ensembles générés aléatoirement contribuent à la construction de l’arbre de décision. Après
l’étape de l’échantillonnage BOOTSTRAP, on prend en considération dans la sélection aléatoire
les caractéristiques de chaque nœud de division relative à la construction de chaque arbre.
Après avoir construit les arbres de décision, l’algorithme fera l’agrégation de tous les arbres,
c’est-à-dire, il prend la moyenne des prédictions des arbres et fournit la prédiction finale.

5.4.3.2 RANDOMIZED SEARCH CV :


Ceci constitue un atout puissant pour optimiser les hyperparamètres via une recherche
aléatoire dans un modèle de MACHINE LEARNING. Il sert à améliorer à l’amélioration des
performances du modèle RANDOM FORREST REGRESSOR en cherchant les meilleures
combinaisons d’hyperparamètres. Ce process est assuré à travers un dictionnaire contenant
les hyperparamètres et les intervalles de valeurs. Ensuite, on crée une instance de notre modèle
de base ‘rf’ .Puis, on passe à la création de l’objet RANDOMIZED SEARCH CV ayant comme
paramètres le modèle de base, le dictionnaire contenant les hyperparamètre ainsi que le
nombre d’itérations, c’est-à-dire, les combinaisons de valeurs. Après avoir défini l’objet, on
effectue la recherche aléatoire avec la méthode « fit ». Une fois le process de recherche est
terminé, on obtient les meilleurs combinaisons via la méthode best_params de l’objet Random
Search . On effectue la recherche aléatoire avec la méthode « fit ». Enfin, après avoir optimisé
les hyperparamètres, on réalise l’évaluation du modèle et on effectue les prédictions sur

42
l’ensemble de test. La figure ci-dessous résume le process qu’on a effectué pour le modèle
RANDOM FORREST REGRESSOR :

Figure 56 : RANDOM FORREST REGRESSOR

5.4.4 K NEAREST NEIGHBOR REGRESSOR :


C’est un modèle basé sur le principe suivant : pour avoir une prédiction d’une
observation qui est le point de données, il effectue une recherche sur les K observations du côté
distanciel. Ensuite, il prend la moyenne ou la médiane des variables qu’on veut les prédire des
k-voisins pour fournir la valeur prédite
La distance à mesurer est en fait la distance euclidienne et concernant K c’est un
hyperparamètre et doit être précisé avant faire l’entrainement du modèle. Le modèle fonctionne
comme suit : D’abord, c’est la phase d’entrainement : le modèle fait un stockage en mémoire
des données d’entrainement, ce qui signifie qu’il effectue le stockage des valeurs des variables
cibles et les variables qui interviennent dans la prédiction. Ensuite, le modèle passe à la
prédiction qui se manifeste dans le calcul de la distance entre une observation qu’on doit
prédire et toutes les distances relatives pour l’entrainement et se fait un choix des k voisins les
plus proches. Enfin, l’algorithme nous fournit la valeur prédite comme résultat de régression.
Ci-dessous est l’implémentation de l’algorithme KNN :

Figure 57 : KNEAREST NEIGHBOR

43
5.4.5 ADABOOST :
C’est un modèle ensembliste dédié à l’apprentissage automatique qui consiste à
augmenter la prédiction d’un apprenant ayant un score atténué en faisant l’assemblage de
plusieurs instances de ce modèle de mauvaise qualité. Son fonctionnement est comme suit :
On commence par entrainer un modèle de régression qui est faible bien précisément, peu
profond. Ensuite, on passe à la phase d’attribution de poids ayant pour principe l’attribution de
poids élevé pour les exemples d’entrainements mal prédits et les exemples d’entrainements
bien prédits qui reçoivent un poids plus faible après l’application de l’erreur de prédiction
concernant ce modèle faible. Ensuite, nous faisons un entrainement de façon itérative par
l’algorithme en ajustant un modèle faible sur les données d’entrainement qui calcule l’erreur et
attribue le poids en se basant sur ce taux d’erreur. Puis, il construit un modèle fort à partir de
ces modèles faibles. Enfin, on passe à la prédiction qui consiste à l’obtention de la prédiction
finale à partir des prédictions des modèles faibles :

Figure 58 : ADABOOST

5.4.6 XGBOOST :
Ceci correspond à une bibliothèque Open-Source utilisée pour obtenir des modèles de
haute performance en se basant sur techniques d’amélioration appliqués sur des arbres de
décision. L’implémentation de cet algorithme commence par la création d’un modèle de
XGBOOST. Ensuite, on met en place une grille de recherche qui admet différents
hyperparamètres comme
Le nombre d’estimateurs, le taux d’apprentissage, profondeur maximale des arbres,
fraction de sous échantillonnage ainsi que fraction des colonnes. Puis, on effectue la création
d’un GRIDSEARCHCV en utilisant une la métrique R2 pour évaluer les performances. En exécute
ensuite la recherche en grille afin d’obtenir le meilleur modèle et les meilleurs hyperparamètres
en combinaison et on affiche les résultats de notre recherche.
Ci-joint l’implémentation de notre algorithme :

44
Figure 59 : XGBOOST

5.4.7 Réseaux de neurones :


5.4.7.1 Principe :
Le principe de cet algorithme est sa formation en couches de neurones artificielles
appelés nœuds. Ses neurones est ensuite décomposée en trois couches : couche d’entrée qui
contient les variables d’entrée du modèle. Chaque neurone contient une variable intervenant
dans la prédiction. La 2éme catégorie de couches sont les couches situées entre les couches
d’entrés et les couches de sortie appelées intermédiaires qui se charge des transformations
complexes sur les données. Chaque neurone de ces couches transmet les données aux
couches suivantes qui effectuent une opération mathématique sur ces données et transfère le
résultat déjà fourni aux couches qui suivent. Puis interviennent les couches de sorties pour
nous fournir le résultat de la prédiction du modèle.

5.4.7.2 Implémentation :
On commence par l’importation des bibliothèques nécessaires comme NUMPY,
PANDAS et KERRAS qui est une bibliothèque dédiée à l’apprentissage par profondeur. Ensuite,
on divise les données en X qui sont les caractéristiques et Y la variable cible. Puis, on fait une
sélection des meilleures caractéristiques en utilisant KBEST afin d’avoir les caractéristiques les
plus informatives. Subséquemment, on effectue la division des données en X_TRAIN_SCALED,
X_TRAIN et Y_TRAIN moyennant Y_TRAIN_SPLIT. On arrive maintenant à l’étape de
standardisation qui signifie avoir une échelle commune entre les variables explicatives. On
arrive à la phase de création du modèle de réseau de neurones ayant 64 unités dans la couche
d’entrée avec une fonction d’activation Relu, une couche de sortie et une unité pour la
régression. Après la création, on compile le modèle et on entraine le modèle sur les données
réservés pour l’entrainement pendant 100 époques pendant lequel l’optimiseur régularise le
poids afin d’avoir une perte minimale. Enfin, après l’entrainement du modèle, on effectue les
prédictions sur l’ensemble de test. Le fonctionnement du modèle est illustré par la figure ci-
dessous :

45
Figure 60 : RESEAUX DE NEURONES

5.4.8 LSTM :
C’est un type de réseau de neurones récurrentes (RNN) conçu pour le traitement des
données en séquences. La prédiction se fait à travers trois portes principales :
✓ Porte d’oubli : Son rôle principale est de décider quelles informations à prendre en
considération dans la mémoire ou à oublier.
✓ Porte d’entrée : Il décide les informations à sauvegarder dans l’état de cellule. Cette
étape nécessite l’état caché précédente et l’entrée actuelle afin de fournir un vecteur de
mise à jour.
✓ Porte de sortie : Il indique la sortie de la cellule LSTM, c’est une prédiction de
l’information à transférer à la couche qui suit. Cet objectif nécessite l’état cachée
précédente et l’état actuelle pour la génération d’un vecteur de sortie.
Ces opérations qui auront lieu pour chaque pas de temps dans la séquence. Il est
nécessaire de faire l’organisation de plusieurs couches LSTM afin d’obtenir un modèle
complexe capable de dégager des dépendances à différentes échelles de temps. Ensuite, le
modèle est entrainé en attribuant des poids de connexion entre les cellules LSTM afin d’avoir un
cout minimal de moyenne d’erreur quadratique pour notre cas de régression. Après
l’entrainement du modèle, on fait la prédiction sur autre séquences de données. Le résultat
final de prédiction est obtenu après l’accumulation de plusieurs couches de ce modèle. La
figure ci-jointe est la description du fonctionnement LSTM en prenant juste la variable cible et
les variables explicative liés aux temps avons de faire l’entrainement, on a effectué la création
de nouvelle caractéristiques trigonométriques afin d’avoir des tendances saisonnières de
données.

46
Figure 61 : LSTM

5.5 Conclusion :
Nous avons mis l’accent sur les différents modèles de régression et de série temporelle
appliqués pour bien évidemment choisir le modèle qui convient à notre jeu de données et afin
de trouver le modèle le plus convenable qui nous donne une réponse à notre objectif à savoir la
prédiction de la masse salariale en Tunisie. C’est dans la partie suivante qu’on va évaluer notre
modèle.

47
Chapitre 6 : Comparaison des modèles
6.1 Introduction :
Ce chapitre représente l’avant dernière étape du cycle de vie en CRISP-DM. Cette phase
aura lieu juste après l’obtention des résultats dans la phase dédiée à l’application des
algorithmes. Il s’agit d’une réponse à plusieurs questions parmi lesquelles : Est-ce que notre
modèle arrive à résoudre le problème de manière efficace et appropriée ? Est-ce qu’on a
répondu aux objectifs fixés ?

6.2 Critères de comparaison des modèles implémentés :


Dans cette phase, on met en relief les différentes mesures dédiées à la comparaison des
différents algorithmes et leurs significations selon le problème que nous devons résoudre. On
est dans le cas d’un problème de régression, les différentes métriques à utiliser pour évaluer les
algorithmes de régression précédemment décrits sont expliquées en détail ci-dessous :

6.2.1 Métriques utilisées dans la comparaison :

➢ R Carré Score :
Elle correspond au coefficient de déterminaison multiple. C’est une mesure effectuée pour
évaluer les algorithmes d’apprentissage automatique dans le cas d’un problème de régression.
Ce terme indique la proportion de la variance totale dans la variable qu’on veut prédire. Elle
nous donne une réponse sur la question : « A quel point les prédictions dégagées par notre
modèle se rapprochent des valeurs existantes de notre variable cible ?». Cette métrique prend
une valeur qui varie entre 0 et 1. Trois cas sont possibles :
- Si R2<=0 : le modèle nous donne plus une explication sur les variances dans la
variable cible. Cela indique que le modèle n’a pas le pouvoir de faire des
estimations utiles.
- SI R2=1 : le modèle est capable de donner une explication de la totalité de la
variance dans notre variable qui est notre objectif. Autrement dit, Il y a une
correspondance entre les estimations et les valeurs actuelles.
- Si 0 <R2< 1 : Le modèle peut générer une partie de l’explication de la variance de
notre variable qui est l’objectif de notre estimation. Plus R SQUARED se rapproche
de la valeur 1 plus la qualité du modèle et sa capacité d’explication des données
augmente.

➢ MEAN ABSOLUTE ERROR (MAE) :


Elle nous donne une idée sur la valeur absolue des différences entre les valeurs estimées et
les valeurs existantes. Cette mesure nous indique à quelles point nos valeurs prédites ne sont
plus vraies : C’est à dire la valeur de l’amplitude de l’erreur. La valeur de cette métrique peut
s’étendre de 0 vers +infini.

48
➢ MEAN SQUARED ERROR(MSE) :
C’est la moyenne de la soustraction des valeurs estimées des valeurs existantes en réalité.
Il est préférable que la valeur de cette mesure soit plus petite pour nous indiquer une
meilleure performance du modèle.

➢ Root MEAN SQUARED ERROR(RMSE) :


C’est la racine carrée de la métrique MSE. Elle facilite la comparaison avec les moyennes
des valeurs existantes plus que la MSE. Plus que le RMSE est faible, plus le modèle donne
des résultats de prédictions favorables car il a la capacité de l’ajustement aux données.
➢ MEAN ABSOLUTE PERCENTAGE ERROR(MAPE) :
C’est le résultat de la soustraction en valeur absolue entre les valeurs estimées par
l’algorithme et les valeurs dans la réalité c’est-à-dire que dans chaque prédiction, il prend
la différence en pourcentage et se charge de calculer la moyenne des erreurs en valeurs
absolues pour l’ensemble des variables. Il est plus pratique que le RMSE car il ne prend pas
en considération l’unité de la variable cible et il n’a pas la sensibilité aux valeurs anormales
surtout celles qui se rapprochent de 0.

6.2.2 Ajustement du modèle : UNDERFITTING ou OVERFITTING :


L’ajustement d’un modèle nous donne une indication sur la précision du modèle : Est-ce
qu’elle est de faible précision ou pas ? et nous permet de comprendre si notre modèle de
prédiction est en état de surajustement ou dans un état de sous-ajustement. Cette vérification
se fait par la comparaison de l’erreur de prédiction entre les données d’entrainement et celles
de test.

Figure 62 : TYPES D’AJUSTEMENTS MACHINE LEARNING

49
✓ OVERFITTING : C’est le surajustement qui se caractérise par l’incapacité du modèle à la
généralisation pour des données en état invisible. L’indice de sur-apprentissage c’est la
supériorité remarquable de l’erreur de test à l’erreur sur les données d’entrainement.
D’une manière générale, le surapprentissage ne peut plus ajuster des données d’autres
sources et peut causer des mauvaises estimations sur les futures visualisations.

✓ UNDERFITTING : C’est le cas d’un algorithme n’ayant plus la capacité de la


modélisation des données d’entrainement ni sur les nouveaux jeux de données.

6.2.3 Temps d’entrainement et de prédiction :


✓ Temps d’entrainement : C’est la durée mise par le modèle pour l’apprentissage sur les
données dédiées à l’entrainement.
✓ Temps de prédiction : C’est la durée mise par le modèle pour faire ses estimations pour
l’ensemble de données relatives au test.
La comparaison des différents modèles de prédiction se basant sur ces deux mesures
nous aide à utiliser les ressources informatiques de manière raisonnable. En respectant les
contraintes de temps d’exécution, on veille à obtenir les résultats de prédiction sans
attendre beaucoup et on garantit la satisfaction de l’utilisateur par la rapidité des prédictions
de notre modèle.

6.3 Comparaison des différents algorithmes :


Après avoir cité les différents critères de choix du modèle le plus adéquat qui répond à
notre objectif et après avoir appliqué les différents modèles sur nos données déjà existantes,
notre but principal est de minimiser le pourcentage d’erreurs causées par l’apprentissage et
avoir un maximum de variance expliquée par le modèle et la rapidité de la génération de la
valeur prédite.

6.3.1 Evaluation du modèle de DECISION TREE REGRESSOR :


Le résultat fourni par ce modèle sur les ensembles de variables de test est égal à
87.5% pour la métrique R2 avec pourcentage d’erreur 2% et un temps en entrainement égal à
5.21s durée de prédiction égal 5.208 s environ et comme indique la figure suivante :

Figure 63 : METRIQUES DE DECISION TREE REGRESSOR

50
Concernant le calcul de surapprentissage ou sous-apprentissage, nous avons comparé les
performances sur les données d’entrainements et celles de test. Nous avons trouvé que
R2(Train) = 0.875 est pratiquement égal à R2(Test) donc le modèle n’est ni dans un sur/sous
apprentissage.

Figure 64 : APPRENTISSAGE DECSION TREE

6.3.2 Evaluation du modèle de K NEAREST NEIGHBOR :


Le résultat fourni par ce modèle sur l’ensemble des variables de test est égal à 87.5% pour
la métrique R2 avec pourcentage d’erreur 0.8% et un temps en entrainement égal à 101.65s et
une durée de prédiction égale à 53.08 s environ, comme indique la figure suivante :

Figure 65 : METRIQUES DE KNN

Concernant le calcul de surapprentissage ou sous-apprentissage, nous avons comparé les


performances sur les données d’entrainement et celles de test. Nous avons trouvé que

51
R2(Train) = 0.926 qui est légèrement différente de R2 de test qui est R2(Test)= 0.875. Donc, il n y
a pas de surapprentissage significatif à noter.

Figure 66 : APPRENTISSAGE DE KNN

6.3.3 Evaluation du modèle de RANDOM FORREST REGRESSOR :


Le résultat fourni par ce modèle sur les ensembles de variables de test est égal à 97%
pour la métrique R2 avec un pourcentage d’erreur de 61% sur les valeurs existantes, un temps
en entrainement égal à 6.41s et une durée de prédiction égal 396.2 s environ, moyennant la
technique de RANDOMIZED SEARCH CV, comme indique la figure suivante :

Figure 67 : METRIQUES DE RANDOM FORREST REGRESSOR

Concernant le calcul de surapprentissage ou sous-apprentissage, nous avons comparé les


performances sur les données d’entrainement et celles de test. Nous avons trouvé que
R2(Train) = 98% et R2(Test) = 97%, ce qui indique que le modèle est capable de faire des
estimations sur de nouvelles données, il ne souffre pas de surajustement remarquable. Mais, il
a un taux considérable de pourcentage d’erreurs. Ceci est peut-être dû à l’échelle des valeurs
de notre variable cible.

52
Figure 68 : APPRENTISSAGE DE RANDOM FOREST

6.3.4 Evaluation du modèle de ADABOOST :


Le résultat fourni par ce modèle sur l’ensemble des variables de test est égal à 87.6% pour
la métrique R2 avec un pourcentage d’erreur pratiquement égal à 1.2% des valeurs existantes,
un temps en entrainement égal à 30.57s et une durée de prédiction égale à 38.02s environ,
comme déjà mentionné dans la figure suivante :
:

Figure 69 : METRIQUES ADABOOST

Passons maintenant à effectuer l’évaluation de surapprentissage ou sous-


apprentissage. Pour cela nous avons comparé les performances sur les données
d’entrainement et celles de test, nous avons trouvé que R2(Train) = 87.45% et R2(Test) = 87.6%.
Ceci indique que le modèle est capable de faire des estimations sur des données inexistantes,
il ne souffre pas de surajustement remarquable et il a un taux acceptable de pourcentage
d’erreur. Donc, le modèle effectue des estimations relativement précises :

Figure 70 : APPRENTISSAGE ADABOOST

53
6.3.5 Evaluation du modèle XGBOOST :
Le résultat fourni par ce modèle sur l’ensemble des variables de test est égal à 84.4% pour la
métrique R2 avec un pourcentage d’erreurs pratiquement égal à 1.64% des valeurs existantes,
un temps en entrainement égal à 717.65s et une durée de prédiction égale à 717.71s environ
comme déjà mentionné dans la figure suivante.
Nous pouvons conclure de ces mesures que le modèle est capable de donner une
explication sur la totalité de la variance dans les variables de test, mais, il peut causer des
erreurs significatives et un temps d’entrainement et de prédiction long ce qui signifie que
l’utilisateur doit attendre beaucoup de temps pour obtenir les résultats de prédiction :

Figure 71 : METRIQUES XGBOOST

On passe maintenant aux tests d’apprentissage en comparant la variance expliquée des


données de test et des données d’entrainement. On a obtenu une valeur de R2(test)
pratiquement la même pour R2(train) qui est 0.844, donc, il n’y a pas de surapprentissage ou
sous apprentissage :

Figure 72 : APPRENTISSAGE XGBOOST

6.3.6 Evaluation du modèle Réseaux de neurones :


On remarque que le modèle a une explication de la variance sur les données de test R2
score = 74%, ce qui indique une explication importante. Mais, il reste une partie non expliquée.
Les différentes erreurs entre les estimations et les valeurs en réalité sont significatives. Aussi, le
temps de formation et de génération des estimations est important, ce qui est insatisfaisant
pour l’utilisateur.

54
Cet algorithme nécessite un réglage dans ses hyperparamètres afin de diminuer les
erreurs et réduire le temps d’estimation. D’après les valeurs de test d’apprentissage du modèle,
on a obtenu R2(train) = 73% et R2(test) = 76%, ce qui indique que le modèle a une variance
dans les variables de test qui n’a pas encore d’explication par ce modèle. Ces figures résument
les métriques générées par cet algorithme :

Figure 73 : METRIQUES RESEAUX DE NEURONES

Figure 74 : APPRENTISSAGE RESEAUX DE NEURONES

6.3.7 Evaluation du modèle de LSTM :


On remarque que le modèle explique presque la totalité de la variance réservée pour les
données de test qui est de valeur R2 = 99% avec un taux d’erreurs significatif et aussi un temps
de prédiction et d’apprentissage très longs, ce qui cause un problème pour l’utilisateur qui veut
avoir des résultats de prédiction dans une durée réduite. Le modèle d’un autre côté ne souffre
d’aucun sur/sous apprentissage car les valeurs de R2(test) et R2(train) sont presque identiques
qui est 0.997. Voilà les métriques dégagées par ce modèle :

Figure 75 : METRIQUES LSTM

Figure 76 : APPRENTISSAGE LSTM

55
6.4 Choix du modèle :
Après l’obtention des différentes mesures nécessaires de chaque modèle, nous avons
fait un histogramme récapitulatif de chaque mesure de performance c’est-à-dire R2 score, MAE,
MAPE, RMSE et MSE. Pour cela, nous avons fait appel à une fonction qui prend en paramètres
les algorithmes utilisés et leurs valeurs de mesures. Puis, nous avons utilisés une fonction de tri
pour les métriques de ces algorithmes par ordre descendant. Il s’agit de la fonction
‘sort_with_algorithm’, puis, nous avons réalisé des graphiques pour chaque mesure de
performance en utilisant la fonction ‘plt_subplots’ et nous avons affiché les graphiques
moyennant la fonction ‘plt_show’. Voici un aperçu du code utilisé :

Figure 77 : TRI DES MODELES

D’après l’application de ces fonctions, on a déduit que les algorithmes LSTM, RANDOM
Forrest, ADABOOST et DECISION TREE REGRESSOR ont des R2 scores élevées, alors que
DECISION TREE REGRESSSOR et KNN ont des MAPE réduites. Donc, on peut déduire que
Decision Tree Regressor est le mieux performant parmi ces algorithmes. Ces résultats sont
traduits par la figure suivante :

56
Figure 78 : COMPARAISON DES MODELES ML

Passons à la comparaison des algorithmes selon le temps de prédiction et


d’entrainement par le biais d’un histogramme. Le principe est le même que les algorithmes de
performances. Nous avons stocké les valeurs de durée d’entrainement et d’estimation de
chaque algorithme. Ensuite, nous avons itéré les algorithmes et leurs valeurs de prédiction et
d’apprentissage et nous avons trié les valeurs par ordre décroissant. Nous avons affiché
l’histogramme des algorithmes en fonction de leurs temps de prédiction et de d’apprentissage :

57
Figure 79 : RAPIDITE DES ALGORITHMES

D’après les résultats obtenus, on a trouvé que DECISION TREE et ADABOOST sont les
deux algorithmes le plus rapides en temps de formation et d’estimation. On peut conclure que
DECISION TREE REGRESSOR est le meilleur algorithme côté performance et vitesse de
génération des estimations. Il peut contribuer le plus à la satisfaction du client.

6.5 Conclusion :
Dans cette partie, on a mis l’accent sur la critique et l’évaluation de chaque modèle
selon différents critères de comparaison à savoir les métriques de performance et de rapidité
des prédictions. Nous avons déterminé le modèle le plus convenable qui répond à nos objectifs
commerciaux fixés dès le début. Dans le chapitre suivant et qui est la dernière phase du cycle
CRISP-DM, nous allons rendre notre modèle élu exploitable dans une application.

58
Chapitre 7 : Déploiement du modèle

7.1 Introduction :
Dans cette dernière étape de l’implémentation de tout projet dans le domaine DATA
SCIENCE, nous allons mettre en exergue la partie empirique c’est-à-dire l’implémentation
technique de notre application contenant le déploiement de notre modèle choisi. De prime
abord, nous allons faire une étude conceptuelle de l’application :

7.2 Partie conceptuelle de notre application :

7.2.1 Besoins fonctionnels de l’application :


Nous mettons l’accent, dans la première partie du dernier chapitre, sur les besoins
fonctionnels de notre application web de prédiction de la masse salariale. En fait, les besoins
fonctionnels sont les fonctionnalités offertes par notre application comme suit :

• L’authentification des utilisateurs.


• La connexion à la base des données afin d’enregistrer les informations de connexion qui
caractérisent chaque utilisateur.
• Le déploiement du modèle élaboré et la prédiction de la masse salariale.
• L’affichage d’un DASHBOARD qui contient les différentes statistiques concernant les
recrutements, la masse salariale et les indemnités.

7.2.2 Modélisation des fonctionnalités de notre application :


Après avoir extrait les besoins fonctionnels de notre application, nous allons les
schématiser avec une modélisation bien détaillée qui précise les détails de notre
application. C’est pour cela, nous avons eu recours à un logiciel de modélisation que nous
utilisons ainsi qu’un langage approprié.

7.2.2.1 Langage de modélisation :


Afin de concevoir notre application et nos fonctionnalités, nous avons opté pour le langage
de modélisation les plus utilisé dans la phase de conception qui est le langage UML (UNIFIED
MODELLING LANGUAGE) ayant pour avantages :
✓ Effectuer une modélisation de haut niveau indépendamment des environnements et
des langages de programmation utilisés.
✓ Comprendre et exprimer les aspects statiques et fonctionnels.
✓ Faire des simulations avant de passer à développer le système.

59
7.2.2.2 Logiciel de modélisation :
Pour schématiser les modèles conceptuels de notre application, nous avons utilisé un
logiciel de modélisation « STARUML » qui est dédié aux systèmes informatiques orientés
objets.

7.2.3 Identification des acteurs de notre application :


Le langage UML commence par la recherche des acteurs du système. En effet, un acteur
est défini comme : une entité externe (acteur humain ou dispositif matériel) qui interagit de
façon directe avec le système. En effet, les utilisateurs de l’application sont des analystes
financiers qui peuvent consulter les informations existant dans notre système afin de valider
les objectifs métiers.

7.2.4 Modélisation des besoins :


Après l’identification des acteurs de notre système, on passe à l’analyse fonctionnelle
du système via notre diagramme de cas d’utilisation illustré par la figure suivante :

Figure 80 : DIAGRAMME DE CAS D’UTILISATION GLOBALE

60
7.2.5 Besoins non fonctionnels de l’application :
Notre application est capable de fournir comme besoins techniques :

• Rapidité : l’application doit répondre aux requêtes des utilisateurs et à l’affichage des
informations.
• Ergonomie : la facilité de manipulation et l’accessibilité aux différentes parties de
l’application sans demande d’aucune connaissance en informatique avec la clarté des
résultats affichés.
• Sécurité : la sécurité dans le traitement des données qui concernent les utilisateurs et
la confidentialité à travers le cryptage du mot de passe.
• Flexibilité : le traitement des données en quantité et en qualité c’est-à-dire le
traitement d’un nombre maximum de types de variables d’une part. D’autre part, cette
application doit être exécutable sur n’importe quel type de navigateur web.

7.3 Partie empirique de notre application :


L’implémentation de notre application repose principalement sur la création d’une
interface d’authentification. L’analyste financier peut ajouter plusieurs utilisateurs. L’utilisateur
s’authentifie via son LOGIN et son mot de passe. Puis, il accède aux différentes fonctionnalités
qui existent dans notre système d’informations. Il peut soit visualiser les statistiques
concernant les recrutements, la masse salariale et indemnités soit prédire la masse salariale.

7.3.1 Authentification :
L’interface ci-jointe nous donne une idée sur le processus d’authentification d’un
utilisateur via son nom d’utilisateur et son mot de passe :

Figure 81 : PAGE D’AUTHENTIFICATION

61
Si l’utilisateur n’existe pas dans la base, il doit s’inscrire avant de se connecter et par la
suite avoir un accès à notre application par le remplissage d’un formulaire qui contient toutes
ses informations relatives. La figure ci-dessous nous donne une idée sur la page
d’enregistrement d’un nouvel utilisateur :

Figure 82 : INSCRIPTION UTILISATEUR

7.3.2 Partie statistique :


Après l’étape d’authentification, l’analyste financier se trouve dans la page d’accueil de
notre application et peut accéder aux différents services offerts par notre application. Voici une
figure qui met en reflet l’interface principale de l’application :

Figure 83 : PAGE D’ACCUEIL

62
Dans le but d’avoir un accès aux différentes statistiques concernant les données, il faut
d’abord uploader les fichiers EXCEL qui contiennent les données concernées et leurs valeurs.
La figure ci-dessous présente une interface de téléchargement des fichiers de données :

Figure 84 : TELECHARGEMENT DES FICHIERS

Après avoir téléchargé nos fichiers, on peut maintenant visualiser les statistiques
relatives à la masse salariale, les recrutements et les montants indemnités. Voici les
statistiques de la masse salariale détaillées dans la figure suivante :

Figure 85 : STATISTIQUES DE LA MASSE SALARIALE

63
On passe maintenant aux statistiques des montants-indemnités illustrées par la figure
suivante :

Figure 86 : STATISTIQUES DES INDEMNITES

On met en relief à ce stade l’interface dédiée à la visualisation des différentes statistiques


concernant les recrutements et qui sont présentées par la figure suivante :

Figure 87 : STATISTIQUES DES RECRUTEMENTS

64
7.3.3 Déploiement :
Dans cette partie, on a effectué un formulaire à remplir par les différents champs
nécessaires pour la prédiction de la masse salariale. Après cliquer sur le bouton « predict » de
notre application, notre modèle élaboré dans la phase de modélisation est chargé dans la partie
BACK-END et effectue le calcul nécessaire pour nous fournir un résultat de la valeur de la
masse salariale. Le schéma de notre process de déploiement est comme suit :

Figure 88 : STRUCTURE DU DEPLOIEMENT

Un dossier qui s’appelle ‘backend_flask’ regroupe tous les fichiers de la partie FRONT-
END ainsi que le fichier FLASK ayant pour objectif la réception des requêtes POST et la
génération des estimations en utilisant le modèle pris en compte. Voici notre formulaire de
prédiction suivi du résultat de prédiction de notre variable cible :

Figure 89 : EXECUTION DE LA PARTIE DEPLOIEMENT DU MODELE

65
Pour notre test, nous avons effectué un test sur Python avec les valeurs suivantes :

Figure 90 : VALEURS DE TEST

7.4 Conclusion :
Le déploiement constitue la dernière étape de notre processus CRISP-DM. En effet,
nous avons mis l’accent sur notre application web implémentée et les différents services offerts
par notre application. En l’occurrence, nous avons mis en valeur la fonctionnalité de prédiction
de la masse salariale, notre cible visée.

66
Conclusion générale et perspectives

En guise de conclusion, le travail élaboré au sein de la société « Centre Nationale de


L’informatique » ayant pour thème : « Mise en place d’un système de visualisation de l’évolution
et de la prédiction de la masse salariale » nous a permis d’élargir nos connaissances en
apprentissage automatique et en développement web et avoir la possibilité d’apprendre de
nouvelles technologies et persévérer pour trouver de meilleures solutions pour toutes les
problématiques rencontrées.
Ce projet s’avère une bonne opportunité pour profiter au mieux de la progression et
l’évolution du domaine de l’apprentissage automatique. Il nous a permis de mettre à la
disposition de plusieurs établissements publics des solutions pour mieux gérer les
recrutements et la flambée dans les salaires, éviter l’apparition de nouvelles promotions et par
conséquent, aider à planifier les budgets et empêcher les augmentations excessives.
Nos études informatiques au sein de l’école supérieure privée de technologie nous a
permis d’acquérir de nouvelles compétences indispensables pour le métier d’un ingénieur en
informatique telles que la responsabilité, le travail d’équipe, la réactivité en entreprise, le savoir-
faire et le savoir-être qui semblent être des valeurs indispensables pour l’élaboration de notre
projet de fin d’études et n’importe quel projet professionnel à venir.

67
Bibliographie

[1] http://www.cni.tn/index.php/fr/layout-3/presentation-du-cni-2
[2] https://africanmanager.com/la-masse-salariale-degraissee-a-129-a-lhorizon-
2025/#:~:text=Des%20records%20et%20une%20situation%20in%C3%A9dite&te
xt=La%20masse%20salariale%20de%20la,sociales%20et%20accentuant%20le
%20d%C3%A9ficit%20.b
[3] https://b2b-africa.net/fr/produit/logiciel-gestion-personnel-tunisie-gestion
paie-application-grhpaie-zk/
[4] https://datascientest.com/convolutional-neural-network
[5] https://www.datasciencetoday.net/index.php/fr/machine-
learning/148reseaux-neuronaux-recurrents-et-lstm
[6] https://datascience.eu/fr/apprentissage-automatique/comprendre-les
reseaux-lstm/
[7] https://www.journaldunet.fr/web-tech/dictionnaire-du-ebmastering/1445304-
python-definition-et-utilisation-de-ce-langage-informatique/
[8] https://www.lebigdata.fr/jupyter-notebook
[9] https://www.ibm.com/fr-fr/topics/java-spring-boot
[10] https://angular.io/guide/what-is-angular

68
69

Vous aimerez peut-être aussi