Vous êtes sur la page 1sur 93

Intitulé du PFE UNIVERSITE ABDELMALEK ESSAADI

FACULTE DES SCIENCES ET TECHNIQUES DE TANGER


DEPARTEMENT GENIE INFORMATIQUE

PROJET DE FIN D’ETUDES


Master Mobiquité et Big Data

Sujet :

Implémentation d'un Système Prédictif d'Attrition du


Personnel

Réalisé PAR : Sous l’encadrement de :

• AFILAL TRIBAK Firdaous • Pr. Mohamed BEN AHMED


• M. EZZAHRAOUI Saad

Soutenu le : 22/06/2023 devant le jury :

Président : Pr. Anouar Abdelhakim BOUDHIR

Encadrant : Pr. Mohamed BEN AHMED

Examinateur : Pr. Aziz MAHBOUB

Année Universitaire : 2022/2023


Intitulé du PFE

Dédicaces
À très ma chère mère et mon père,

À ceux qui m'ont indiqué la bonne voie, qui m'ont donné leurs conseils,
encouragement, motivations et leur soutien et qui ont pris la charge en mettant à
ma disposition tous les moyens aussi bien financiers et moraux pour poursuivre
mes études dans de bonnes conditions.

Aucune dédicace ne pourrait exprimer la profondeur de mon amour et mon


attachement.

Puisse Dieu vous prêter longue vie afin que je puisse vous combler à mon tour,
vous êtes toujours la garantie d'une existence paisible et d'un avenir radieux...

À mes chers frères,

Aucun mot ne pourra décrire vos dévouements et vos sacrifices.

À toutes ma famille,

À ceux qui m'ont soutenu et encouragé, ceux qui ont su apprécier mes efforts et
créer le milieu favorable et l'atmosphère joviale pour faciliter ce travail.

À mes amis,

À tous mes ami(e)s qui me sont cher(e)s, et tous ceux que j'aime et qui m'aiment,
qu'ils trouvent ici l'expression de mes sentiments les plus dévoués et mes vœux les
plus sincères.

À mes chers encadrants,

Pour leur soutien et l'aide permanente qu'il n'a cessé de m'apporter.


Intitulé du PFE

Remerciements
Je tiens d'abord à remercier l'Eternel Dieu pour m'avoir donné la puissance, la
persévérance, la volonté, le courage et la connaissance pour réaliser ce travail.

J’exprime ma profonde gratitude et respectueuse reconnaissance à mon encadrant


pédagogique M. MOHAMED BENHMED, pour son soutien et son encadrement
précieux tout au long de mon stage de projet de fin d'études. Sa guidance, ses
conseils avisés et son expertise ont joué un rôle crucial dans la réussite de mon
projet.

Je tiens également à remercier chaleureusement M. SAAD EZZAHRAOUI, mon


encadrant de stage au sein de l'entreprise Expleo Group, pour son accueil, son
encadrement et sa disponibilité. Ses connaissances approfondies du domaine et ses
conseils éclairés ont grandement contribué à ma formation professionnelle et à
l'atteinte de mes objectifs.

Mes remerciements s'adressent également à la Faculté des Sciences et Techniques


(FST) pour la qualité de son enseignement et son soutien tout au long de mon
parcours académique. Les connaissances acquises au sein de cette institution
renommée ont été essentielles pour la réalisation de mon stage.

Enfin, je tiens à exprimer ma reconnaissance envers l'entreprise Expleo Group


pour m'avoir accueilli et offert une expérience professionnelle enrichissante. Je
suis reconnaissant envers toute l'équipe pour leur collaboration, leur
accompagnement et les opportunités d'apprentissage qu'ils m'ont offertes.

Ces personnes et institutions ont joué un rôle déterminant dans ma formation et


je suis extrêmement reconnaissant pour leur soutien et leurs précieuses
contributions.

AFILAL TRIBAK Firdaous

1
Intitulé du PFE

Résumé
Dans le cadre de notre projet de fin d'études à la Faculté des sciences et Techniques de Tanger
(FSTT), pour l'obtention du master en Mobiquité et Big Data (MBD), on a effectué ce stage
pour acquérir une qualification professionnelle qui complète la formation théorique acquise a
la Faculté. Le présent document constitue la synthèse de notre travail réalisé au sein de
l'entreprise Expleo Group, qui a pour objectif, La Mise en place d'un modèle Machine Learning
de la prédiction de l’attrition du personnel.

Le taux d'attrition des employés est un problème majeur pour de nombreuses entreprises, car
cela peut entraîner des coûts élevés en termes de temps, de ressources et de productivité. Ce
projet est conçu pour aider l'entreprise à mieux comprendre les raisons pour lesquelles les
employés quittent leur entreprise et à prendre des mesures pour réduire le taux d'attrition.
L'application fournit des informations précieuses sur les facteurs clés de l'attrition, tels que les
salaires, l’âge, les avantages sociaux, les opportunités de carrière. L'entreprise peut utiliser ces
informations pour améliorer sa stratégie de rétention des employés et offrir des avantages et des
opportunités de carrière attractives pour les garder motivés et engagés. En fin de compte, cette
solution peut aider l'entreprise à maintenir une main-d'œuvre qualifiée et expérimentée, ce qui
peut améliorer la qualité du travail et la productivité de l'entreprise. En évitant les coûts liés à
la formation de nouveaux employés, cette solution peut aider l'entreprise à investir dans la
formation et le développement de son personnel actuel, ce qui peut renforcer la culture de
l'entreprise et améliorer les relations avec les employés.

La réalisation de ce projet s’est allongée sur une période de quatre mois. Durant cette période
on a significativement amélioré nos compétences en Machine Learning (ML) et en
développement web. On a acquis une solide connaissance des algorithmes ML, du prétraitement
des données, de la sélection et de l'évaluation des modèles. On a aussi maîtrisé Fast API pour
la création d'API et Anguler pour le développement frontend. On a finalement réussi à intégrer
notre modèle ML à une API et à la déployer dans une application web, renforçant ainsi nos
compétences en tant que développeur ML et web.
Intitulé du PFE

Abstract
As part of our final year project at sciences and technologies Faculty of Tangier (FSTT), to
obtain a Master's degree in Mobiquity and Big Data (MBD), we carried out this internship to
acquire a professional qualification that complements the theoretical training acquired at the
Faculty. The present document is a summary of our work for the Expleo Group, with the aim
of implementing a Machine Learning model for predicting staff attrition.

Employee attrition is a major problem for many companies, as it can lead to high costs in terms
of time, resources and productivity. This project is designed to help the company better
understand the reasons why employees leave, and take steps to reduce attrition. The application
provides valuable information on key attrition factors, such as salaries, age, benefits and career
opportunities. The company can use this information to improve its employee retention strategy
and offer attractive benefits and career opportunities to keep them motivated and engaged.
Ultimately, this solution can help the company maintain a skilled and experienced workforce,
which can improve the quality of work and the company's productivity. By avoiding the costs
associated with training new employees, this solution can help the company invest in the
training and development of its existing staff, which can strengthen the company culture and
improve employee relations.

The project took four months to complete. During this period, we significantly improved our
skills in Machine Learning (ML) and web development. We acquired a solid understanding of
ML algorithms, data pre-processing, model selection and evaluation. We also mastered Fast
API for API creation and Angular for frontend development. We finally succeeded in
integrating our ML model into an API and deploying it in a web application, reinforcing our
skills as ML and web developers.

AFILAL TRIBAK Firdaous

1
Intitulé du PFE

Nom et Prénom de l’Etudiant Stagiaire :

AFILAL TRIBAK Firdaous

Intitulé du sujet :

Implémentation d'un Système Prédictif


d'Attrition du Personnel

Etablissement d’accueil :

EXPLEO Group

Encadrant Pédagogique :

Pr. Mohamed BEN HMED

Avant-propos
Encadrant Technique de Stage :

M. EZZAHRAOUI Saad

Période de projet :

Du 6 Mars 2022 au 22 juin 2023

Cadre du Stage :

Projet de Fin d’Etudes présenté en vue de


l’obtention d’un Master en Mobiquité et Big data.

AFILAL TRIBAK Firdaous

2
Intitulé du PFE

Sigles et abréviations

Tableau 1:Sigles et abréviations

Sigles Significations

API Application Programming Interface

HTTP Hypertext Transfer Protocol

IA Intelligence artificielle

JSON JavaScript Object Notation

KNN K-nearest neighbors

ML Machine learning

MLP Multilayer perceptron

REST Representational state transfer

RH Ressources humaines

SVC Support vector machine

AFILAL TRIBAK Firdaous

3
Intitulé du PFE

Table des matières


Introduction générale ................................................................................................................ 10
Chapitre1 : Contexte général du projet .................................................................................... 11
1 Présentation de l’organisme d’accueil .............................................................................. 12
1.1 Expleo Group ............................................................................................................. 12
1.1.1 Profil de l'entreprise ........................................................................................... 12
1.1.2 Implantations d’Expleo : .................................................................................... 12
1.1.3 Les Clients Expleo : ........................................................................................... 12
1.1.4 Expleo en chiffre : .............................................................................................. 13
1.1.5 Les services : ...................................................................................................... 13
1.2 Expleo Maroc ............................................................................................................ 14
1.2.1 Profil de l'entreprise ........................................................................................... 14
1.2.2 Expleo Morocco : Ambition ............................................................................... 14
2 Présentation de projet ....................................................................................................... 15
2.1 Contexte générale ...................................................................................................... 15
2.1.1 C’est quoi L'attrition du personnel ? .................................................................. 16
2.1.2 Raisons clés de l'attrition : .................................................................................. 17
2.1.3 Le calcul de l'attrition : ....................................................................................... 18
2.2 Problématique : .......................................................................................................... 18
2.3 Objectif ...................................................................................................................... 19
3 Démarche de conduite ...................................................................................................... 19
3.1 Conduite de projet : ................................................................................................... 19
3.1.1 Méthode Agile SCRUM : ................................................................................... 19
3.1.2 Organisation du projet ........................................................................................ 20
3.1.3 Planification : ..................................................................................................... 21
Chapitre2 : État de l’art ............................................................................................................ 23
1 Etude théorique ................................................................................................................ 24
1.1 Intelligence artificielle ............................................................................................... 24
1.2 Apprentissage automatique : ..................................................................................... 24
1.2.1 Modalisation d’un système d’apprentissage automatique :................................ 26
1.2.2 L’apprentissage supervisé : ................................................................................ 27
1.2.3 L’apprentissage non supervise ........................................................................... 28
1.2.4 L’apprentissage par renforcement ...................................................................... 29
1.3 Les algorithmes de classification binaire : ................................................................ 30
AFILAL TRIBAK Firdaous

4
Intitulé du PFE

1.3.1 Régression logistique ......................................................................................... 30


1.3.2 Arbre de décision ............................................................................................... 30
1.3.3 Support Vector Classification ............................................................................ 30
1.3.4 Random forest .................................................................................................... 30
1.3.5 Naive Bayes ........................................................................................................ 31
1.3.6 KNeighborsClassifier ......................................................................................... 31
2 Études connexes ............................................................................................................... 31
2.1 Hewlett-Packard ........................................................................................................ 32
2.2 Google ....................................................................................................................... 32
3 Les outils utilisés pour la réalisation du projet ................................................................. 32
3.1 Langage de programmation et technologies .............................................................. 33
3.2 Les bibliothèques et les standards : ........................................................................... 34
3.3 Environnement de développement ............................................................................ 35
Chapitre3 : Préparation des données ........................................................................................ 38
1 Objectif ............................................................................................................................. 39
2 Le jeu de données ............................................................................................................. 39
2.1 L’importation des données : ...................................................................................... 40
3 Prétraitement des données : .............................................................................................. 40
3.1 Traitement des valeurs manquantes ........................................................................... 41
3.2 Détection et gestion des valeurs aberrantes ............................................................... 43
3.3 Création de colonne dérivée : .................................................................................... 44
3.4 Le codage :................................................................................................................. 45
3.5 La normalisation ........................................................................................................ 46
3.6 Corrélation : ............................................................................................................... 48
3.7 Calcule de turnover (l’attrition du personnel) : ......................................................... 49
3.8 Sélection des caractéristiques : .................................................................................. 50
3.9 L'importance des caractéristiques .............................................................................. 51
3.10 La décomposition des données : ............................................................................ 52
Chapitre4 : Elaboration du modèle........................................................................................... 55
1 Elaboration du modèle ..................................................................................................... 56
1.1 Entrainement de modèle : .......................................................................................... 56
1.2 Choix de modèle ........................................................................................................ 57
1.3 Algorithmes utilisés ................................................................................................... 57
2 Évaluation modèle ............................................................................................................ 57

AFILAL TRIBAK Firdaous

5
Intitulé du PFE

2.1 Accuracy : .................................................................................................................. 57


2.1.1 Détection de problème : ..................................................................................... 59
2.2 Cross validation : ....................................................................................................... 59
2.3 GridSearch : ............................................................................................................... 60
2.4 Matrice de confusion : ............................................................................................... 60
2.5 Rapport de classification ........................................................................................... 61
3 Discussion des résultats .................................................................................................... 61
3.1 Régression logistique ................................................................................................. 62
3.2 Arbre de décision ....................................................................................................... 62
3.3 Support Vector Machine ............................................................................................ 63
3.4 Naive Bayes ............................................................................................................... 64
3.5 KNN : ........................................................................................................................ 64
3.6 Random forest : ......................................................................................................... 65
3.7 Xbosting : .................................................................................................................. 66
4 Choix de l’algorithme : .................................................................................................... 66
4.1 Overfitting: ................................................................................................................ 67
Chapitre5 : Déploiement du modèle......................................................................................... 69
1 Architecture Du projet ...................................................................................................... 70
1.1 Backend ..................................................................................................................... 71
1.1.1 API REST ........................................................................................................... 71
1.2 Frontend ..................................................................................................................... 71
1.2.1 Page Dashboard .................................................................................................. 71
1.2.2 Page Predictions ................................................................................................. 77
1.2.3 Page Statistics ..................................................................................................... 80
1.3 Dépoilement dans docker : ........................................................................................ 84
Conclusion ................................................................................................................................ 85
Perspectives .............................................................................................................................. 86
Références ................................................................................................................................ 87

AFILAL TRIBAK Firdaous

6
Intitulé du PFE

Listes des Figures


Figure 1: Les clients d'Expleo..................................................................................................................................... 12
Figure 2: Headcount d'Expleo Maroc ...................................................................................................................... 15
Figure 3:Attrition du personnel ................................................................................................................................ 16
Figure 5:Methode SCRUM ............................................................................................................................................ 20
Figure 6:Diagramme de GANTT ................................................................................................................................ 22
Figure 7: Schéma de IA ................................................................................................................................................. 24
Figure 8: Schéma de ML ............................................................................................................................................... 25
Figure 9: Les phases de ML ......................................................................................................................................... 26
Figure 10: Classification VS Regression ................................................................................................................. 27
Figure 11:Clustering VS Réduction de dimensionnalité ................................................................................. 28
Figure 12: Apprentissage par renforcement ....................................................................................................... 29
Figure 15: Le nombre des valeurs manquantes à chaque colonne............................................................. 41
Figure 16: Présentation des valeurs manquantes par pourcentage .......................................................... 41
Figure 17: Résultat de traitement de valeurs manquantes ........................................................................... 42
Figure 18:Détection des valeurs aberrantes ........................................................................................................ 43
Figure 21: La colonne "demission" .......................................................................................................................... 44
Figure 23: Corrélation entre les variables ............................................................................................................ 49
Figure 24: Attrition du personnel annuel ............................................................................................................. 50
Figure 25: L'importance des variables ................................................................................................................... 52
Figure 26: La décomposition des données ........................................................................................................... 53
Figure 28: Entrainement et evaluation du modéle ........................................................................................... 56
Figure 29: La formule de l'accuracy ........................................................................................................................ 57
Figure 30: Accuracy des algorithmes ...................................................................................................................... 58
Figure 31:Itérations de validation croisée............................................................................................................ 59
Figure 32: Matrice de confusion de Régression logistiaue ............................................................................ 62
Figure 33: Rapport de classification de Régression logistique .................................................................... 62
Figure 34: : Rapport de classification d'arbre de decision ............................................................................. 62
Figure 35: Matrice de confusion de l'arbre de decision .................................................................................. 63
Figure 36: : Rapport de classification de SVM ..................................................................................................... 63
Figure 37: Matrice de confusion de SVM ............................................................................................................... 63
Figure 38:: Rapport de classification de Naive Bayes ...................................................................................... 64

AFILAL TRIBAK Firdaous

7
Intitulé du PFE

Figure 39: Matrice de confusion de Naive Bayes ............................................................................................... 64


Figure 40:: Rapport de classification de KNN...................................................................................................... 64
Figure 41:Matrice de confusion de KNN................................................................................................................ 65
Figure 42: : Rapport de classification de Random forest................................................................................ 65
Figure 43: Matrice de confusion de Random forest .......................................................................................... 65
Figure 44:: Rapport de classification de Xbosting ............................................................................................. 66
Figure 45: Matrice de confusion de Xbosting ...................................................................................................... 66
Figure 46: Accuracy de modèle ................................................................................................................................. 67
Figure 47: Sauvgarde de modéle .............................................................................................................................. 67
Figure 48:Architecture Du projet ............................................................................................................................. 70
Figure 49: Répartition des données ........................................................................................................................ 72
Figure 50:Graphique des démissions en fonction de l'âge et du salaire .................................................. 73
Figure 51:Graphique des démissions en fonction de l'âge et du anciennté ............................................ 74
Figure 52:Nombre d'employés démissionnaires par catégorie d'âge. ...................................................... 75
Figure 53:Nombre d'employés démissionnaires par catégorie d'anciennté.......................................... 76
Figure 54:Nombre d'employés démissionnaires répartis par sexe. .......................................................... 76
Figure 55:Nombre d'employés démissionnaires répartis par départment ............................................ 77
Figure 56: Page de predictions .................................................................................................................................. 78
Figure 57: Prédiction par modification de moyenne d'ancienneté ............................................................ 79
Figure 58: Prédiction par modification de moyenne de salaire .................................................................. 80
Figure 59:Les prédictions possible par Age ......................................................................................................... 81
Figure 60:Les prédictions possible par Ancienneté ......................................................................................... 82
Figure 61:Les prédictions possible par Salaire................................................................................................... 83

AFILAL TRIBAK Firdaous

8
Intitulé du PFE

Listes des tables

Tableau 1:Sigles et abréviations ..................................................................................................................................3


Tableau 2:L'équipe de projet...................................................................................................................................... 20
Tableau 3: Itération SCRUM ....................................................................................................................................... 21
Tableau 4:Description des champs de données ................................................................................................. 39

AFILAL TRIBAK Firdaous

9
Introduction générale

Introduction générale
L'intelligence artificielle (IA) est une discipline informatique visant à créer des systèmes
simulant les capacités cognitives humaines. Elle aspire à développer des machines et des
logiciels capables d'apprentissage, d'interprétation de données complexes, de perception
environnementale, de résolution de problèmes et d'interaction naturelle avec l'homme.
Dans le domaine des Ressources Humaines (RH), l'IA offre de nouvelles opportunités pour
améliorer l'efficacité et l'efficience des processus RH. Grâce à ses capacités d'automatisation,
d'analyse prédictive et de personnalisation, l'IA peut contribuer à la gestion du recrutement, la
formation, l'évaluation de la performance, l'engagement des employés, et bien d'autres aspects
de la gestion des ressources humaines.
Cependant, l'attrition du personnel, également connue sous le nom de turnover, est un problème
majeur auquel sont confrontées de nombreuses entreprises, y compris celles du Maroc.
L'attrition du personnel se réfère au phénomène de départ des employés d'une entreprise, qui
peut avoir des conséquences néfastes, telles que les coûts de recrutement et de formation de
nouveaux employés, la perte de connaissances et d'expertise, et la diminution de la productivité
et de la satisfaction des employés restants.
Dans ce contexte, notre responsabilité était de concevoir une solution intelligente complète,
capable de prédire l'attrition du personnel et d'identifier les facteurs influant sur cet indicateur.
Ce rapport actuel, qui représente le produit de notre effort et illustre le travail accompli au cours
de ce stage, explique en détail les différentes phases de réalisation de ce projet. Il se structure
en cinq chapitres, décrits comme suit :
Le premier chapitre : Nous présenterons l’organisme d’accueil, le cadre général de projet, ses
objectifs, ainsi nous décrirons la conduite et le pilotage de projet
Le deuxième chapitre : Nous expliciterons note étude de l’état de l’art ainsi que les
méthodologies et les outils que nous adaptons pour construire notre modèle
Le troisième chapitre : Nous exposerons les différentes étapes de la préparation de données
tel que l’importation de données et le prétraitement.
Le quatrième chapitre : Nous présenterons la construction du modèle prédictif, ainsi que les
algorithmes utilisés afin de les évaluer pour choisir le meilleur
Le cinquième chapitre : Nous Présenterons le déploiement de modèle dans un REST Api et la
réalisation de l’application web ainsi que ses différentes interfaces

AFILAL TRIBAK Firdaous

10
Chapitre 1

Chapitre1 : Contexte général du


projet

Le premier chapitre présente le contexte général du projet et son


objectif principal. Il présente l'établissement d'accueil dans lequel
le sujet du stage est inscrit, ainsi que la gestion et le contrôle du
projet.

AFILAL TRIBAK Firdaous

11
Chapitre 1

1 Présentation de l’organisme d’accueil


1.1 Expleo Group
1.1.1 Profil de l'entreprise

Expleo est un leader mondial de l'ingénierie, de la technologie et du conseil. Avec plus de 40


ans d'expérience, Expleo travaille en partenariat avec des organisations renommées pour
transformer leurs activités et atteindre l'excellence opérationnelle. Spécialisé dans le
développement de produits complexes, l'optimisation des processus de fabrication et la qualité
des systèmes d'information, Expleo apporte une expertise approfondie dans divers secteurs,
notamment l'IA, la digitalisation, l'hyper-automatisation, la cybersécurité et la science des
données. L'objectif d'Expleo est de stimuler l'innovation à chaque étape de la chaîne de valeur.

1.1.2 Implantations d’Expleo :

Expleo est un groupe présent dans 30 pays à travers le monde, couvrant les continents européen,
asiatique, nord-américain, africain et océanien. En outre, le groupe possède 10 centres
d'excellence répartis dans quatre pays spécifiques : l'Égypte, l'Inde, le Maroc et la Roumanie.
Cette présence mondiale et ces centres d'excellence stratégiquement situés témoignent de
l'engagement d'Expleo à fournir des services de qualité et à répondre aux besoins de ses clients
à travers différentes régions.

1.1.3 Les Clients Expleo :

Expleo compte parmi ses clients des entreprises renommées dans différents secteurs. Parmi ces
clients figurent des acteurs majeurs tels que

Figure 1: Les clients d'Expleo

AFILAL TRIBAK Firdaous

12
Chapitre 1

Grâce à ces partenariats avec des clients de renom, Expleo démontre son engagement à fournir
des services de haute qualité, à relever les défis technologiques complexes et à contribuer au
succès de ses clients dans leurs secteurs respectifs.

1.1.4 Expleo en chiffre :

Expleo, acteur mondial de l’ingénierie, de la technologie et du conseil, accélère son


développement en 2022 avec un chiffre d’affaires qui atteint plus de 1,27 milliard d’euros : une
augmentation de 23 % par rapport à 2021. Le groupe réalise un EBITDA de 126,1 millions
d’euros, en hausse de 36 % par rapport à 2021, et une marge de 10 % du chiffre d’affaires.

Le succès du groupe résulte du déploiement d’un plan de transformation de grande envergure


mis en place fin 2020, qui a permis de conjuguer croissance et performance. Expleo a su
répondre aux besoins de transformation de ses clients grâce, entre autres, à l’adaptation de son
organisation et au développement de nouveaux services.

1.1.5 Les services :


✓ Gestion de l'Innovation & Solutions : Avec une approche open innovation et une
double expertise ingénierie x digitale, aider les responsables d’innovation et de la
R&T à accélérer l’industrialisation des innovations, à garder une longueur d’avance
sur la concurrence et à atteindre les objectifs de développement durable.
✓ Conseils en Transformation : le service de conseil en management a pour objectif
d’aider les cadres et dirigeants à surmonter les défis complexes propres aux secteurs de
l’automobile, de l’aéronautique, du ferroviaire, de la défense, de l’énergie, de la banque
et de l’assurance
✓ Transformation Digitale : accompagner les industries de renom dans la mise en œuvre
de transformations numériques complexes, en leur permettant d’obtenir des retours sur
investissement mesurables.
✓ Ingénierie des produits : offre des services d’ingénierie R&D aux industriels de
l’automobile, de l’aéronautique, de la défense, du ferroviaire et de l’énergie. De la
conception à la certification, les équipes d’ingénieurs multi-expertises garantissent la
livraison de la conception finale du produit dans les délais et les budgets impartis, tout
en veillant à ce qu’ils répondent aux normes et aux exigences de l’utilisateur final.

AFILAL TRIBAK Firdaous

13
Chapitre 1

✓ Production & SupplyChain : les consultants et les ingénieurs aident les industriels à
concevoir les outils et processus qui optimisent les opérations de production et
sécurisent les chaînes d’approvisionnement.
✓ Qualité & Tests : l’équipe de consultants et d’ingénieurs accompagne les industriels
dans leur quête de performances supérieures en sécurisant leurs chaînes
d’approvisionnement et en concevant des outils et des processus efficaces pour
optimiser leurs opérations.
✓ Support Client & Maintenance : Grâce à l’expertise en matière d’analyse de données
prédictives, de stratégie et de processus de maintenance, d’automatisation des processus
du service client, et de support d’ingénierie-RAMS, la propose des solutions de pointe
pour aider les industriels et acteurs de service de maintenance à améliorer leur
satisfaction client et à réduire le coût total de possession (TCO).

1.2 Expleo Maroc


1.2.1 Profil de l'entreprise

Au Maroc, Expleo est basée sur la ville de Tanger.

Tout commence en 2008 : la société internationale « Renault » allait s’implanter au Maroc et


avait besoin d’ingénieurs, ceci a mené à ce qu’une société française du nom d’Assystem
Technology et une autre allemande du nom de « SQS » viennent s’installer au Maroc afin de se
mettre au service de Renault.

En 2018, les deux sociétés ont pris la décision de fusionner pour n’en constituer qu’une seule,
et en 2019 la société a officiellement pris le nom d’Expleo.

Aujourd’hui, Expleo compte environ 350 employés qualifiés au Maroc mais son but est
d’atteindre les 1000 employés d’ici 2025

1.2.2 Expleo Morocco : Ambition

❖ Élargir le champ des ressources et des compétences du groupe


❖ Créer un front office pour nos clients locaux

AFILAL TRIBAK Firdaous

14
Chapitre 1

❖ Développer de nouvelles capacités dans le domaine du numérique et des nouvelles


technologies

Figure 2: Headcount d'Expleo Maroc

2 Présentation de projet
2.1 Contexte générale
Le projet proposé vise à créer un modèle d’apprentissage automatique pour prédire l’attrition
du personnel dans Expleo Group. L’analyse « what if » est également un élément essentiel de
ce projet. Nous pourrons évaluer l’impact potentiel sur le taux d’attrition du personnel en
modifiant des variables clés, telles que la moyenne des salaires ou l’âge moyen des employés.

L’attrition du personnel est un défi majeur pour de nombreuses entreprises, et ce projet vise à
les soutenir en utilisant des techniques d’apprentissage automatique pour prédire l’attrition et
identifier les facteurs déterminants. Pour ce faire, nous collecterons des informations sur les
employés actuels et passés, les nettoierons et les préparerons pour l’analyse.

Ensuite, nous identifierons les principaux facteurs d’attrition et développerons un modèle


prédictif en utilisant des techniques d’apprentissage automatique. En modifiant les variables
d’intérêt, ce modèle nous permettra d’évaluer l’attrition potentielle. Par conséquent, nous serons
en mesure d’anticiper les effets de ces changements et d’aider l’entreprise à prendre des
décisions éclairées sur la rétention des employés.

Nous prévoyons également de créer une interface graphique conviviale afin de faciliter
l'interprétation des résultats. Les utilisateurs pourront visualiser clairement et facilement les
résultats de l’analyse « What-if » avec cette interface. L’objectif ultime est de fournir à

AFILAL TRIBAK Firdaous

15
Chapitre 1

l’entreprise les données nécessaires pour créer des stratégies de gestion des ressources humaines
et de rétention du personnel efficaces.

2.1.1 C’est quoi L'attrition du personnel ?

L'attrition du personnel dans une entreprise fait référence au taux de rotation ou de départ des
employés. Cela mesure la fréquence à laquelle les employés quittent une entreprise et doivent
être remplacés par de nouveaux employés. L'attrition peut se produire pour diverses raisons,

Figure 3:Attrition du personnel


telles que des départs volontaires (démissions, retraites) ou des départs involontaires
(licenciements, non-renouvellements de contrat).

L'attrition du personnel peut avoir un impact significatif sur une entreprise.

Un taux d'attrition élevé peut entraîner des coûts supplémentaires liés au recrutement et à la
formation de nouveaux employés, ainsi qu'à une perte de connaissances et d'expérience. De
plus, une forte attrition peut affecter la cohésion de l'équipe, la productivité et la satisfaction
globale des employés.

Pour gérer l'attrition du personnel, les entreprises peuvent mettre en œuvre différentes
stratégies, telles que l'amélioration des conditions de travail, le renforcement de la
communication interne, l'offre d'avantages sociaux attractifs, la reconnaissance des
performances, le développement professionnel et des possibilités d'avancement, ainsi que des
programmes de rétention du personnel. Ces mesures visent à maintenir un environnement de
travail positif et à fidéliser les employés, réduisant ainsi l'attrition.

AFILAL TRIBAK Firdaous

16
Chapitre 1

2.1.2 Raisons clés de l'attrition :

L'attrition du personnel est un sujet d'intérêt majeur pour les professionnels des ressources
humaines dans une entreprise. Voici quelques raisons pour lesquelles les ressources humaines
accordent une attention particulière à l'attrition du personnel :

• Coûts de recrutement : Le remplacement d'un employé qui quitte une entreprise


engendre des coûts significatifs liés au recrutement, à la sélection, aux entretiens, à la
formation et à l'intégration d'un nouveau collaborateur. Les ressources humaines
cherchent à réduire ces coûts en comprenant les causes de l'attrition et en prenant des
mesures pour la prévenir.
• Productivité et performance : L'attrition fréquente peut affecter la productivité globale
de l'entreprise. Les ressources humaines se préoccupent de maintenir un effectif stable
et compétent pour assurer un niveau de performance optimal. Réduire l'attrition permet
de maintenir une équipe expérimentée et performante.
• Réputation de l'entreprise : Un taux d'attrition élevé peut nuire à la réputation d'une
entreprise. Les ressources humaines sont chargées de veiller à ce que l'entreprise soit
perçue comme un employeur attrayant et soucieux du bien-être de ses employés. En
réduisant l'attrition, elles contribuent à maintenir une image positive de l'entreprise sur
le marché du travail.
• Rétention des talents : Les ressources humaines jouent un rôle clé dans la rétention des
talents. En identifiant les causes de l'attrition, elles peuvent mettre en place des
programmes de développement professionnel, des opportunités d'avancement, des
avantages sociaux et des politiques de reconnaissance qui encouragent les employés à
rester au sein de l'entreprise.
• Culture d'entreprise : L'attrition peut avoir un impact sur la culture d'entreprise et
l'engagement des employés. Les ressources humaines travaillent à créer un
environnement de travail positif et à favoriser un fort engagement des employés en
mettant en place des initiatives visant à réduire l'attrition et à améliorer la satisfaction
au travail.

AFILAL TRIBAK Firdaous

17
Chapitre 1

2.1.3 Le calcul de l'attrition :

Nb. D’employés ayant quitté l’entreprise


Pendant la période donnée
Taux d’attrition (%) = X 100
Nb. Moyen d ’employés sur la période
donnée

2.2 Problématique :
L'attrition du personnel constitue un défi majeur pour de nombreuses entreprises, entraînant des
coûts élevés liés au recrutement, à la formation et à la perte de connaissances. Dans ce contexte,
le développement d'un modèle d'apprentissage automatique (ML) pour prédire l'attrition du
personnel et identifier les principaux facteurs associés revêt une importance stratégique.

La problématique centrale de ce projet consiste à répondre aux questions suivantes : comment


développer un modèle ML efficace capable de prédire avec précision l'attrition du personnel
dans une entreprise donnée ? Quels sont les facteurs clés qui influencent cette attrition ? Et
comment ces informations peuvent-elles être utilisées pour améliorer la rétention des employés
et faciliter la prise de décision stratégique en matière de gestion des ressources humaines ?

Pour répondre à ces interrogations, des données pertinentes devront être collectées, analysées
et exploitées. Il faudra identifier les variables explicatives susceptibles d'avoir une influence
significative sur l'attrition du personnel, telles que la rémunération, les perspectives de carrière,
la satisfaction au travail, les conditions de travail, etc. En utilisant ces données, il sera possible
de développer un modèle ML capable de prédire les chances de départ d'un employé et
d'identifier les facteurs clés associés à cette attrition.

L'objectif final de ce projet est de fournir des informations utiles à la rétention des employés et
d'améliorer la compréhension de l'attrition du personnel, afin de permettre aux responsables des
ressources humaines de prendre des décisions éclairées et de mettre en place des stratégies
efficaces pour retenir les talents au sein de l'entreprise.

Ainsi, cette problématique vise à combiner les domaines de l'apprentissage automatique, de la


gestion des ressources humaines et de la prise de décision stratégique, en vue d'apporter des
solutions concrètes pour réduire l'attrition du personnel et améliorer la stabilité de l'effectif dans
l'entreprise.
AFILAL TRIBAK Firdaous

18
Chapitre 1

2.3 Objectif
L’objectif de ce projet est de développer un modèle prédictif de l'attrition du personnel et de
réaliser divers scénarios "What-if" pour comprendre l'impact de diverses variables sur ce taux.
Cela permettra à l'entreprise de prendre des décisions éclairées et de mettre en place des
stratégies visant à réduire l'attrition et à maintenir un environnement de travail stable et
productif.

3 Démarche de conduite
3.1 Conduite de projet :
La mise en place d’une solution réussite qui permet de satisfaire le client nécessite une équipe
compétente, stricte et solidaire et elle demande aussi une gestion de projet cohérente qui vérifiée
certains aspects notamment « méthode conduite de projet, organisation, structuration,
planification, et assurance de qualité ».

3.1.1 Méthode Agile SCRUM :

Inspirée du privé et de la gestion des projets informatiques, la méthode SCRUM est devenue de
nos jours de plus en plus adoptée dans les équipes de développement. Cette méthode "agile"
permet la réalisation de projets complexes en favorisant l’interaction avec les membres de
l’équipe et les managers, la collaboration du client et la réactivité face aux changements. La
méthodologie Agile se base sur ce principe simple : planifier la totalité du projet dans les
moindres détails avant de le développer est contre-productif.

AFILAL TRIBAK Firdaous

19
Chapitre 1

Figure 4:Methode SCRUM

En effet, la méthode SCRUM présente plusieurs avantages autres que l’amélioration de la


productivité et de la communication au sein du projet. Elle se base avant tout sur un socle fixe
de rôles, responsabilités et réunions qui ne changent jamais, tout en assurant une gestion flexible
et adaptative des projets. Cela a l’avantage de rassurer les équipes lors de certaines phases de
développement qui peuvent habituellement s’avérer chaotiques et de faciliter la mise en œuvre
des processus

3.1.2 Organisation du projet


En effet, la réalisation d’un projet dans un cadre professionnel demande une bonne organisation
afin de respecter les normes de qualité et les exigences.

Tableau 2:L'équipe de projet

Rôle Nom

Product owner M.EZZAHROUI Saad

Scrum Master AFILAL TRIBAK Firdaous

Team member AFILAL TRIBAK Firdaous

AFILAL TRIBAK Firdaous

20
Chapitre 1

Ce tableau ci-dessous montre le sprint de la méthode Scrum qui est une itération ou boîte de
temps d’une a deux semaines au sein de laquelle notre équipe conçoit, développe et teste un
ensemble de fonctionnalités du projet, ce sprint est accompagné par des réunions.

Tableau 3: Itération SCRUM

Formation ML

Compréhension du problème et des données

Nettoyage et préparation des données

Exploration des données et sélection des caractéristiques

Choix d'un modèle d'apprentissage automatique

Entraînement du modèle

Validation et optimisation du modèle

Évaluation du modèle

Développement de la partie backend de l’interface

Développement de la partie front de l’interface

Déploiement du modèle

3.1.3 Planification :

Pour mener à bien les objectifs fixés et assurer un bon déroulement du projet, nous avons
organisé de bout en bout le travail afin de répondre aux besoins définis dans les délais fixés.

AFILAL TRIBAK Firdaous

21
Chapitre 1

Pour ce faire nous avons tracé le diagramme de GANTT, en se basant sur les tâches génériques
suivantes :

Figure 5:Diagramme de GANTT

4 Conclusion :
Ce premier chapitre apporte une vision globale par rapport au projet traité.

Nous avons présenté l'organisme d'accueil et le contexte général du projet qui porte sur la
prédiction de l’attrition du personnelle, Ainsi nous avons illustré la démarche suivie tout au
long du projet. Dans ce cadre, il est question tout d'abord d'étudier l'état de l'art. Cette étude
fera l'objet du chapitre suivant.

AFILAL TRIBAK Firdaous

22
Chapitre 2

Chapitre2 : État de l’art

Dans ce chapitre, nous explicitons notre étude de l’état de l’art


ainsi que les outils que nous adaptons pour construire notre projet

AFILAL TRIBAK Firdaous

23
Chapitre 2

1 Etude théorique
1.1 Intelligence artificielle
Un domaine de l'informatique appelé intelligence artificielle (IA) vise à créer des technologies
et des systèmes capables de réaliser des tâches qui nécessitent généralement l'intelligence
humaine. Son objectif principal est de développer des appareils et des logiciels capables de
percevoir, de comprendre, de raisonner, d'apprendre et de résoudre des problèmes de manière
autonome. En utilisant des techniques telles que l'apprentissage automatique, les réseaux de
neurones artificiels, le traitement du langage naturel et la vision par ordinateur, l'IA vise à
reproduire les capacités cognitives humaines.

Figure 6: Schéma de IA

L'IA est utilisée dans divers domaines tels que la médecine, les transports, la finance et les
technologies de l'information pour automatiser des tâches complexes, faciliter la prise de
décision et favoriser l'innovation grâce à ces progrès.

1.2 Apprentissage automatique :


L'apprentissage automatique (en anglais : Machine Learning), apprentissage artificiel ou
apprentissage statistique est un champ d'étude de l'intelligence artificielle qui se fonde sur des
approches mathématiques et statistiques pour donner aux ordinateurs la capacité d' apprendre
à partir de données, c'est-à-dire d'améliorer leurs performances à résoudre des tâches sans être
explicitement programmés pour chacune. Plus largement, il concerne la conception, l'analyse,
l'optimisation, le développement et l'implémentation de telles méthodes. On parle
AFILAL TRIBAK Firdaous

24
Chapitre 2

d'apprentissage statistique car l'apprentissage consiste à créer un modèle dont l'erreur statistique
moyenne est la plus faible possible.

L'apprentissage automatique comporte généralement deux phases. La première consiste à


estimer un modèle à partir de données, appelées observations, qui sont disponibles et en nombre
fini, lors de la phase de conception du système. L'estimation du modèle consiste à résoudre une
tâche pratique, telle que traduire un discours, estimer une densité de probabilité, reconnaître la
présence d'un chat dans une photographie ou participer à la conduite d'un véhicule autonome.
Cette phase dite « d'apprentissage » ou « d'entraînement » est généralement réalisée
préalablement à l'utilisation pratique du modèle. La seconde phase correspond à la mise en
production : le modèle étant déterminé, de nouvelles données peuvent alors être soumises afin
d'obtenir le résultat correspondant à la tâche souhaitée. En pratique, certains systèmes peuvent
poursuivre leur apprentissage une fois en production, pour peu qu'ils aient un moyen d'obtenir
un retour sur la qualité des résultats produits.[18]

Quand on parle d’apprentissage automatique, on parle de types d’apprentissages, parmi les plus

Figure 7: Schéma de ML
répandus on citera :

• Supervisé
• Non supervisé
• Par renforcement

AFILAL TRIBAK Firdaous

25
Chapitre 2

1.2.1 Modalisation d’un système d’apprentissage automatique :

Le problème de machine Learning permet à un ordinateur de modéliser les données qui lui sont
fournies. "Modéliser" signifie dans ce cas représenter le comportement d’un phénomène afin
de pouvoir directement aider à la résolution d’un problème concret de l’entreprise. Ce problème
concret peut par exemple être : identifier des transactions frauduleuses, prédire l’impact d’une
campagne marketing sur le taux de conversion, recommander un article personnalisé à un
utilisateur, prédire le prix optimal d’un produit pour maximiser le nombre de ventes, filtre les
spam, prédire le prix d’un bâtiment, etc. En machine Learning, l’idée est que l’algorithme
construise une "représentation interne" tout seul afin de pouvoir effectuer la tâche qui lui est
demandée (prédiction, identification, etc.). Pour cela, il va d’abord falloir lui entrer un jeu de
données d’exemples afin qu’il puisse s’entraîner et s’améliorer, d’où le mot apprentissage. Ce
jeu de données s’appelle le training set. On peut appeler une entrée dans le jeu de données une
instance ou une observation.

Le processus du machine Learning est composé en deux phases :

Figure 8: Les phases de ML

AFILAL TRIBAK Firdaous

26
Chapitre 2

Comme on peut le voir sur le schéma ci-dessus, un problème d’apprentissage machine comporte
ainsi différents éléments spécifiques : — Les données (les données d’entraînement mais aussi
les nouvelles données) — La tâche spécifique à accomplir (prédire, recommander, décider
quelque chose, etc.) — L’algorithme d’apprentissage — L’analyse d’erreur (pour mesurer des
performances du modèle)

1.2.2 L’apprentissage supervisé :

L’apprentissage supervisé est une sous-catégorie de l’apprentissage automatique et de


l’intelligence artificielle. Il est défini par son utilisation d’ensembles de données étiquetés pour
former des algorithmes qui permettent de classer les données ou de prédire les résultats avec
précision. L'objectif est de donner un sens aux données dans le contexte d’une question
spécifique. L’apprentissage supervisé est utilisé pour des problèmes de classification et de
régression, comme la détermination de la catégorie à laquelle appartient un article de presse, ou
la prévision du volume des ventes pour une date future donnée.[19]

Figure 9: Classification VS Regression

1.2.2.1 Classification :

La classification consiste à attribuer une étiquette ou une classe à un exemple en se basant sur
des exemples d'entraînement préalablement étiquetés. Cela permet aux machines de reconnaître
et de classer différentes catégories, en utilisant des caractéristiques identifiées dans les données
d'entraînement.

AFILAL TRIBAK Firdaous

27
Chapitre 2

1.2.2.2 Régression

La régression est utilisée pour prédire une valeur numérique en se basant sur des données
d’entraînement. Elle est couramment utilisée pour des tâches telles que la prédiction des prix,
la prévision des ventes ou l'estimation des performances. En utilisant des algorithmes de
régression, le modèle apprend à généraliser les relations entre les caractéristiques et les valeurs
cibles, permettant ainsi de faire des prédictions sur de nouvelles données non étiquetées.

1.2.3 L’apprentissage non supervise

L ’apprentissage non supervisé consiste à ne disposer que de données d’entrée (X) et pas de
variables de sortie correspondantes.

L’objectif de l’apprentissage non supervisé est de modéliser la structure ou la distribution sous-


jacente dans les données afin d’en apprendre davantage sur les données.

On l’appelle apprentissage non supervisé car, contrairement à l’apprentissage supervisé ci-


dessus, il n’y a pas de réponse correcte ni d’enseignant. Les algorithmes sont laissés à leurs
propres mécanismes pour découvrir et présenter la structure intéressante des données.[20]

Figure 10:Clustering VS Réduction de dimensionnalité

1.2.3.1 Clustering

Le clustering utilisée pour regrouper des données similaires en fonction de leurs


caractéristiques, sans étiquettes préalablement définies. L'objectif est de trouver des structures
ou des motifs intrinsèques dans les données, permettant ainsi de former des groupes ou des
clusters cohérents.

AFILAL TRIBAK Firdaous

28
Chapitre 2

1.2.3.2 La réduction de dimensionnalité

La réduction de dimensionnalité est une technique utilisée pour réduire le nombre de


caractéristiques (ou dimensions) d'un ensemble de données tout en préservant les informations
pertinentes. L'objectif est de simplifier la représentation des données, ce qui peut faciliter leur
visualisation, leur analyse et leur traitement

1.2.4 L’apprentissage par renforcement

En apprentissage automatique, l'apprentissage par renforcement consiste, pour un agent


autonome (ex. : robot, agent conversationnel, personnage dans un jeu vidéo, etc.), à apprendre
les actions à prendre, à partir d'expériences, de façon à optimiser une récompense quantitative
au cours du temps.

Figure 11: Apprentissage par renforcement

L'agent est plongé au sein d'un environnement et prend ses décisions en fonction de son état
courant. En retour, l'environnement procure à l'agent une récompense, qui peut être positive ou
négative. L'agent cherche, au travers d'expériences itérées, un comportement décisionnel
(appelé stratégie ou politique, et qui est une fonction associant à l'état courant l'action à
exécuter) optimal, en ce sens qu'il maximise la somme des récompenses au cours du temps.[21]

AFILAL TRIBAK Firdaous

29
Chapitre 2

1.3 Les algorithmes de classification binaire :


1.3.1 Régression logistique

La régression logistique est un algorithme de classification qui est utilisé pour prédire la
probabilité qu'une variable binaire prenne une valeur spécifique en fonction de plusieurs
variables explicatives. Elle est couramment utilisée pour des problèmes de classification binaire
tels que la prédiction de la survie d'un patient ou la détection de la présence d'une maladie.

1.3.2 Arbre de décision

Un arbre de décision est un modèle de classification qui utilise une structure arborescente pour
représenter des décisions et leurs conséquences. Les arbres de décision sont couramment
utilisés pour la classification binaire et la classification multi classe. L'algorithme de l'arbre de
décision utilise un ensemble de règles pour diviser les données en sous-ensembles homogènes
en fonction des variables d'entrée. Chaque nœud de l'arbre représente une décision, et chaque
branche représente une conséquence de cette décision. Les arbres de décision sont faciles à
interpréter et à visualiser, ce qui en fait un outil populaire pour les problèmes de classification
et de prédiction

1.3.3 Support Vector Classification

Un algorithme de classification qui est utilisé pour prédire la valeur d'une variable cible en
fonction de plusieurs variables d'entrée. SVC est un type de modèle de classification linéaire
qui utilise des vecteurs de support pour diviser les données en deux classes. L'algorithme SVC
est souvent utilisé pour la classification binaire, mais il peut également être utilisé pour la
classification multiclasse en appliquant des techniques de classification un contre tous ou un
contre un. SVC est un algorithme efficace pour les ensembles de données de petite et moyenne
taille, mais il peut être lent pour les ensembles de données très volumineux

1.3.4 Random forest

Une forêt aléatoire est un ensemble d'arbres de décision qui sont entraînés sur des sous-
ensembles aléatoires de données. Les arbres de décision sont construits en utilisant un ensemble
de règles pour diviser les données en sous-ensembles homogènes en fonction des variables
d'entrée. Dans une forêt aléatoire, chaque arbre de décision est entraîné sur un sous-ensemble
aléatoire de données et utilise un sous-ensemble aléatoire de variables d'entrée. Les prédictions

AFILAL TRIBAK Firdaous

30
Chapitre 2

sont ensuite faites en agrégeant les prédictions de tous les arbres de décision. Les forêts
aléatoires sont couramment utilisées pour la classification et la régression, et sont souvent
utilisées pour des ensembles de données de grande taille. Les forêts aléatoires sont faciles à
interpréter et à visualiser, ce qui en fait un outil populaire pour les problèmes de classification
et de prédiction

1.3.5 Naive Bayes

Est un algorithme de classification qui est basé sur le théorème de Bayes. Le Naive Bayes est
utilisé pour prédire la probabilité d'appartenance d'une observation à une classe en fonction de
plusieurs variables d'entrée. Le modèle est "naïf" car il suppose que chaque variable d'entrée
est indépendante des autres, ce qui est souvent une hypothèse trop simpliste dans la pratique.
Cependant, malgré cette simplification, les modèles Naive Bayes sont souvent très performants
pour la classification de textes et de documents, ainsi que pour la classification de données à
grande échelle. Les modèles Naive Bayes sont également faciles à interpréter et à visualiser, ce
qui les rend populaires pour les applications de classification et de prédiction.

1.3.6 KNeighborsClassifier

Le KNN Classifier est un algorithme de classification supervisée qui utilise la méthode des k-
plus proches voisins pour prédire la classe d'une observation. L'algorithme consiste à trouver
les k observations les plus proches de l'observation donnée dans l'espace des caractéristiques
(features). La classe de l'observation est ensuite prédite en utilisant la classe majoritaire parmi
les k voisins les plus proches. Le choix de k dépend du problème et peut être déterminé par
validation croisée. Le modèle KNN Classifier est souvent utilisé pour la classification de
données à grande échelle, mais il peut également être utilisé pour la régression. Les modèles
KNN Classifier sont faciles à interpréter et à visualiser, ce qui les rend populaires pour les
applications de classification et de prédiction

2 Études connexes
Pour souligner l'importance et l'efficacité de la prédiction du turnover en utilisant l'IA, plusieurs
grandes entreprises ont déjà mis en œuvre des projets similaires. Des exemples notables incluent
Hewlett-Packard et Google

AFILAL TRIBAK Firdaous

31
Chapitre 2

2.1 Hewlett-Packard
Hewlett-Packard (HP) a utilisé la puissance de l'analyse prédictive pour anticiper le
comportement de ses employés. En attribuant à chacun de ses plus de 330 000 employés une
note de "risque de départ", HP a pu prédire la probabilité que chaque individu quitte son poste.
Les insights obtenus à partir de ces données ont permis à HP de concentrer ses efforts sur la
rétention des employés susceptibles de partir, réduisant ainsi le coût élevé associé à la recherche
et à la formation de remplaçants. Grâce à cette capacité de prédiction, HP a réussi à réduire le
taux de turnover de son équipe spécialisée dans le calcul et la gestion des rémunérations des
vendeurs à l'échelle mondiale, passant de 20% à 15% et continuant à diminuer.[16]

2.2 Google
Dans son livre "Work Rules!", Laszlo Bock, Vice-président senior des opérations de personnel
(RH) chez Google, révèle que l'instrument le plus important des opérations de personnel de
Google est la statistique. Les questions posées aux candidats lors du processus de recrutement
de Google sont entièrement automatisées, générées par ordinateur et affinées pour trouver le
meilleur candidat. De plus, Google estime la probabilité de départ des employés en utilisant une
analyse prédictive des RH. Une des découvertes de Google est que les nouveaux commerciaux
qui n'obtiennent pas de promotion dans les quatre années suivant leur embauche sont beaucoup
plus susceptibles de quitter l'entreprise. Google suit également d'autres mesures pertinentes en
matière de recrutement, comme le temps nécessaire pour atteindre la productivité et le coût pour
atteindre le niveau de productivité optimal.[17]

3 Les outils utilisés pour la réalisation du projet


Afin de mettre en place et de concevoir notre application Mobile, on a fait usage de différentes
techniques et d’outils. De ce fait, cette partie aura pour mission de définir ces différentes
méthodes

AFILAL TRIBAK Firdaous

32
Chapitre 2

3.1 Langage de programmation et technologies


Python est un langage de programmation interprété, multiparadigme et
multiplateformes. Il favorise la programmation impérative structurée,
fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion
automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est
ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.[1]

Angular est un framework pour clients, open source, basé sur TypeScript et codirigé
par l'équipe du projet « Angular » chez Google ainsi que par une communauté de
particuliers et de sociétés. Angular est une réécriture complète d'AngularJS, cadriciel
construit par la même équipe [2]

FastAPI est un framework Web pour développer des API RESTful en Python.
FastAPI est basé sur Pydantic et des indications de type pour valider, sérialiser et
désérialiser les données, et générer automatiquement des documents OpenAPI.

Il prend entièrement en charge la programmation asynchrone et peut fonctionner avec les


serveurs Gunicorn et ASGI pour la production tels que Uvicorn et Hypercorn. Pour améliorer
la convivialité pour les développeurs, le support de l'éditeur a été envisagé dès les premiers
jours du projet.[3]

Docker est une plateforme permettant de lancer certaines applications dans des
conteneurs logiciels.

Selon la firme de recherche sur l'industrie 451 Research, « Docker est un outil
qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être
exécuté sur n'importe quel serveur ». Il ne s'agit pas de virtualisation, mais de conteneurisation,
une forme plus légère qui s'appuie sur certaines parties de la machine hôte pour son
fonctionnement.[4]

AFILAL TRIBAK Firdaous

33
Chapitre 2

3.2 Les bibliothèques et les standards :

Scikit-learn est une bibliothèque libre Python destinée à l'apprentissage


automatique. Elle est développée par de nombreux contributeurs2 notamment
dans le monde académique par des instituts français d'enseignement supérieur
et de recherche comme Inria.

Elle propose dans son framework de nombreuses bibliothèques d’algorithmes à implémenter,


clé en main. Ces bibliothèques sont à disposition notamment des data scientists.

Elle comprend notamment des fonctions pour estimer des forêts aléatoires, des régressions
logistiques, des algorithmes de classification, et les machines à vecteurs de support. Elle est
conçue pour s'harmoniser avec d'autres bibliothèques libres Python, notamment NumPy et
SciPy.[5]

NumPy est une bibliothèque pour langage de programmation Python, destinée à


manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions
mathématiques opérant sur ces tableaux.

Plus précisément, cette bibliothèque logicielle libre et open source fournit de multiples
fonctions permettant notamment de créer directement un tableau depuis un fichier ou au
contraire de sauvegarder un tableau dans un fichier, et manipuler des vecteurs, matrices et
polynômes.[6]

Pandas est une bibliothèque écrite pour le langage de programmation Python


permettant la manipulation et l'analyse des données. Elle propose en particulier
des structures de données et des opérations de manipulation de tableaux
numériques et de séries temporelles.[7]

Matplotlib est une bibliothèque du langage de programmation Python destinée à


tracer et visualiser des données sous forme de graphiques. Elle peut être combinée
avec les bibliothèques python de calcul scientifique NumPy et SciPy6. Elle fournit

AFILAL TRIBAK Firdaous

34
Chapitre 2

également une API orientée objet, permettant d'intégrer des graphiques dans des applications,
utilisant des outils d'interface graphique polyvalents tels que Tkinter, wxPython, Qt ou GTK.[8]

Angular Material est une bibliothèque de composants d'interface utilisateur (UI)


que les développeurs peuvent utiliser dans leurs projets Angular pour accélérer le
développement d'interfaces utilisateur élégantes et cohérentes. Angular Material
vous offre des composants d'interface utilisateur réutilisables et magnifiques comme les cartes,
les entrées, les tableaux de données, les sélecteurs de date, et bien plus encore.[9]

Chart.js est une bibliothèque JavaScript open source gratuite pour la visualisation
de données. Créée par le développeur Web Nick Downie en 2013, la bibliothèque
est maintenant maintenue par la communauté et est la deuxième bibliothèque de
graphiques JS la plus populaire sur GitHub par le nombre d'étoiles après D3.js[10]

3.3 Environnement de développement

Microsoft Excel est un logiciel tableur de la suite bureautique Microsoft Office


développé et distribué par l'éditeur Microsoft. La version la plus récente est Excel
2019. Il est destiné à fonctionner sur les plates-formes Microsoft Windows, Mac
OS X, Android ou Linux.

Le logiciel Excel intègre des fonctions de calcul numérique, de représentation graphique,


d'analyse de données (notamment de tableau croisé dynamique) et de programmation, laquelle
utilise les macros écrites dans le langage VBA (Visual Basic for Applications) qui est commun
aux autres logiciels de Microsoft Office2[11]

Jupyter est une application web utilisée pour programmer dans plus de 40
langages de programmation, dont: Python, Julia, Ruby, R, ou encore Scalaz.

Jupyter est une évolution du projet |Python. Jupyter permet de réaliser des calepins
ou notebooks, c'est-à-dire des programmes contenant à la fois du texte en markdown et du code
en Julia, Python, R... Ces notebooks sont utilisés en science des données pour explorer et
analyser des donnees.[12]

AFILAL TRIBAK Firdaous

35
Chapitre 2

Visual Studio Code est un éditeur de code extensible développé par Microsoft pour
Windows, Linux et macOS. Les fonctionnalités incluent la prise en charge du
débogage, la mise en évidence de la syntaxe, la complétion intelligente du code, les
snippets, la refactorisation du code et Git intégré. . Les utilisateurs peuvent modifier le thème,
les raccourcis clavier, les préférences et installer des extensions qui ajoutent des fonctionnalités
supplémentaires.[13]

Anaconda est une distribution libre et open source des langages de programmation
Python et R appliqué au développement d'applications dédiées à la science des
données et à l'apprentissage automatique (traitement de données à grande échelle,
analyse prédictive, calcul scientifique), qui vise à simplifier la gestion des paquets et de
déploiement. Les versions de paquetages sont gérées par le système de gestion de paquets
conda[14]

3.4 Autre langage :


Nous avons utilisé d'autre langages et technologies bien connu comme : HTML, CSS,
JavaScript, Bootstrap.

AFILAL TRIBAK Firdaous

36
Chapitre 2

4 Conclusion :
Dans ce chapitre, nous explorerons les outils essentiels que nous mettrons en pratique pour la
réalisation de notre modèle, une fois que nous aurons examiné l'état de l'art. Ces outils joueront
un rôle clé dans la mise en œuvre efficace de notre approche. Nous aborderons notamment les
bibliothèques et les Frameworks utilisés, les langages de programmation, ainsi que d'autres
ressources pertinentes nécessaires pour mener à bien notre projet.

AFILAL TRIBAK Firdaous

37
Chapitre 3

Chapitre3 : Préparation des données

Dans ce chapitre, nous nous concentrons sur la préparation des


données pour notre modèle de machine Learning. Cela implique
l'exploration et le prétraitement des données, y compris l'analyse
des caractéristiques, le nettoyage des données, et l'ingénierie des
caractéristiques. Ces étapes garantissent des données de qualité
optimale pour notre modèle.

AFILAL TRIBAK Firdaous

38
Chapitre 3

1 Objectif
Notre objectif est de prédire l'attrition du personnel. Ce paramètre est calculé au fur et à mesure
des employés démissionnent sur une période donnée. Pour prédire ce paramètre, nous nous
sommes concentrés sur l'attribut "Démission" qui présente une colonne de valeurs binaires
permettant de savoir si un employé a démissionné ou non. Nous avons donc construit un modèle
pour prédire cet attribut (Démission). Après la prédiction de ce dernier, nous pourrons connaître
la nouvelle attrition du personnel. Cela nous permettra également de faire une analyse "what-
if" pour savoir ce qu'il se passerait sur l'attrition du personnel si nous modifions certains
paramètres. Comme il s'agit de prédire des valeurs binaires, nous parlons de classification
binaire.

2 Le jeu de données
Les données représentent un historique de données RH des employés sur une période de 12 ans.
Les données ont été collectées et enregistrées pour tous les employés de l'entreprise tout au long
de cette période. Le jeu de données est assez volumineux, contenant 13 000 lignes et 14
colonnes d'informations. Les informations contenues dans le jeu de données vont des
informations personnelles des employés aux informations sur les salaires, les promotions, les
situation familiale et bien plus encore. Ces données fournissent une vue d'ensemble complète
de l'ensemble du personnel de l'entreprise et peuvent être utilisées pour aider à prendre des
décisions éclairées sur la gestion des ressources humaines. La table ci-dessus décrire les champs
de données

Tableau 4:Description des champs de données

Attribut Description
FonctionCat La catégorie de la fonction de l'employé dans
l'entreprise.

DATE D'EMBAUCHE La date à laquelle l'employé a commencé à


travailler pour l'entreprise.

DIR/ IND Catégorie d’employé

DEPARTEMENT Le département dans lequel l'employé


travaille

AFILAL TRIBAK Firdaous

39
Chapitre 3

DATE DEPART La date à laquelle l'employé a quitté


l'entreprise.

CAUSE DEPART La raison pour laquelle l'employé a quitté


l'entreprise.

SEXE Le sexe de l'employé.

Situation familiale La situation familiale de l'employé (marié,


célibataire, divorcé, etc.).

Enfants Le nombre d'enfants de l'employé.

CONTRAT Le type de contrat de l'employé (CDI, CDD,


etc.).

ANCIENNETE La durée de l'emploi de l'employé dans


l'entreprise.

Age L'âge de l'employé.

date aujourd'hui La date actuelle.

SalairePrime Le salaire de l'employé.

2.1 L’importation des données :


Nous avons importé et manipulé les données qui étaient stockées dans un fichier Excel en
utilisant la bibliothèque pandas. Nous avons créé un Dataframe à partir des données. Un
Dataframe est une structure de données qui est similaire à un dictionnaire, où les colonnes sont
les clés et les variables sont des séries. Cela nous a permis de facilement accéder et manipuler
les données en utilisant des méthodes pandas telles que la sélection de lignes, la sélection de
colonnes et le filtrage de données.

3 Prétraitement des données :


Le prétraitement des données est une étape importante dans l'analyse de données. Il s'agit de
nettoyer, de transformer et de normaliser les données avant de les utiliser pour des analyses
ultérieures. Dans notre projet, nous avons effectué plusieurs étapes de prétraitement des

AFILAL TRIBAK Firdaous

40
Chapitre 3

données, telles que la suppression des valeurs manquantes, la suppression des duplicatas, la
normalisation des données et la transformation des variables catégorielles en variables
numériques. Nous avons également effectué une analyse exploratoire des données pour mieux
comprendre les relations entre les différentes variables et identifier les valeurs aberrantes. Le
prétraitement des données est essentiel pour s'assurer que les données sont de haute qualité et
peuvent être utilisées pour des analyses précises et significatives.

3.1 Traitement des valeurs manquantes


Le traitement des valeurs manquantes est une étape clé dans le prétraitement des données. Dans
notre projet, nous avons utilisé plusieurs méthodes pour traiter les valeurs manquantes. Tout
d'abord, nous avons identifié les valeurs manquantes en utilisant la méthode isnull () de pandas

Figure 12: Le nombre des valeurs manquantes à Figure 13: Présentation des valeurs manquantes par
chaque colonne pourcentage

AFILAL TRIBAK Firdaous

41
Chapitre 3

Ensuite, nous avons décidé de remplacer les valeurs manquantes par la moyenne ou la médiane
des valeurs de la colonne correspondante, en fonction de la distribution des données. Cette
méthode est souvent utilisée pour les données numériques, car elle permet de remplacer les
valeurs manquantes par une estimation raisonnable de la valeur réelle.

Nous avons également examiné la méthode dropna () pour supprimer les lignes qui contenaient
des valeurs manquantes. Bien que cette méthode soit simple et facile à utiliser, elle peut
conduire à une perte importante de données si un grand nombre de lignes contiennent des
valeurs manquantes. Par conséquent, nous avons utilisé cette méthode avec précaution.
Voici le résultat final après le traitement des valeurs manquantes.

Figure 14: Résultat de traitement de valeurs manquantes

Les colonnes DATE DEPART et CAUSE DEPART contiennent toujours des valeurs
manquantes, car ces valeurs ont une signification particulière. Par exemple, les personnes qui
n'ont pas démissionné n'ont pas de date de départ ni de cause de départ. Par conséquent, nous
avons décidé de conserver ces valeurs manquantes dans les données, car elles sont importantes
pour l'analyse ultérieure.

AFILAL TRIBAK Firdaous

42
Chapitre 3

3.2 Détection et gestion des valeurs aberrantes


Les valeurs aberrantes sont des valeurs extrêmes qui diffèrent considérablement des autres
valeurs dans un ensemble de données. Elles sont souvent appelées "valeurs aberrantes" ou
"valeurs extrêmes". Les valeurs aberrantes peuvent être causées par des erreurs de saisie, des
mesures incorrectes ou des événements rares et inattendus. Elles peuvent fausser les résultats
d'une analyse statistique en augmentant la variance des données et en réduisant la précision des
estimations. Par conséquent, il est important de détecter et de gérer les valeurs aberrantes pour
obtenir des résultats plus fiables et précis.

Pour détecter et gérer les valeurs aberrantes dans les données, nous avons utilisé plusieurs
méthodes. Tout d'abord, nous avons créé des graphiques de boîtes et des histogrammes pour
visualiser la distribution des données et identifier les valeurs extrêmes.

Figure 15:Détection des valeurs aberrantes

Nous avons également calculé les statistiques descriptives, telles que la moyenne, l'écart-type
et la plage interquartile, pour quantifier la dispersion des données.

Ensuite, nous avons utilisé des tests statistiques, tels que le test de Grubbs, pour identifier les
valeurs aberrantes potentielles. Nous avons également examiné les valeurs manquantes et les
erreurs de saisie qui pourraient avoir contribué aux valeurs aberrantes. Nous avons également

AFILAL TRIBAK Firdaous

43
Chapitre 3

examiné les valeurs manquantes et les erreurs de saisie qui pourraient avoir contribué aux
valeurs aberrantes. Enfin, nous avons décidé de gérer les valeurs aberrantes en les supprimant
ou en les remplaçant par des valeurs plus raisonnables. Cependant, il est important de noter que
la suppression de valeurs aberrantes peut réduire la taille de l'échantillon et affecter les résultats
de l'analyse. Par conséquent, il est important d'utiliser ces méthodes avec prudence et de les
justifier en fonction des objectifs de l'analyse.

3.3 Création de colonne dérivée :


La création de colonne dérivée consiste à créer de nouvelles variables à partir des variables
existantes dans un ensemble de données. Ces nouvelles variables sont souvent créées pour
capturer une information supplémentaire ou pour faciliter l'analyse des données. Par exemple,
si vous avez une colonne de date dans un ensemble de données, vous pouvez créer une nouvelle
colonne pour extraire le jour de la semaine ou le mois à partir de la date. Cela peut être utile
pour identifier des tendances ou des modèles dans les données.

Nous avons créé une nouvelle colonne nommée "Démission" afin de déterminer si un utilisateur
a quitté l'entreprise ou non. Cette colonne est binaire, avec une valeur de 1 indiquant que
l'utilisateur a démissionné et 0 indiquant le contraire. La colonne "Démission" est basée sur la
colonne "Cause de départ", ainsi, si la cause de départ est une démission ou un départ, la valeur
de la colonne "Démission" sera 1. Cette nouvelle colonne nous permettra de mieux comprendre
les raisons pour lesquelles les utilisateurs quittent notre entreprise.

Figure 16: La colonne "demission"

AFILAL TRIBAK Firdaous

44
Chapitre 3

3.4 Le codage :
Dans le prétraitement des données, le codage fait référence à la conversion des variables
catégorielles en une forme numérique compréhensible par les algorithmes d'apprentissage
automatique et d'autres analyses. Les variables catégorielles sont des variables qui prennent des
valeurs qualitatives, telles que des catégories, des étiquettes ou des noms.

Pourquoi devons-nous coder les variables catégorielles ? Les algorithmes d'apprentissage


automatique fonctionnent généralement avec des données numériques, et ils ne peuvent pas
directement traiter les valeurs catégorielles. Par conséquent, nous devons convertir ces variables
en une représentation numérique appropriée afin que les modèles puissent les utiliser pour la
prédiction ou l'analyse.

Il existe plusieurs types de codage :

✓ Encodage one-hot : Cette technique consiste à créer de nouvelles variables binaires pour
chaque catégorie de la variable catégorielle. Chaque nouvelle variable représente une
catégorie spécifique, et elle prend la valeur 1 si l'observation appartient à cette catégorie
et 0 sinon. Cela permet au modèle de capturer les relations entre les différentes
catégories sans leur attribuer d'ordre.
✓ Encodage ordinal : Dans cette approche, les catégories sont assignées à des valeurs
numériques ordinales. Cela signifie que chaque catégorie est associée à une valeur
numérique unique. Cette méthode est utilisée lorsque les catégories ont un ordre
intrinsèque et peuvent être classées selon une échelle.
✓ Encodage basé sur des fréquences : Cette technique attribue à chaque catégorie une
valeur numérique basée sur sa fréquence d'occurrence dans les données. Les catégories
les plus fréquentes peuvent avoir des valeurs numériques plus élevées, tandis que les
catégories moins fréquentes peuvent avoir des valeurs plus basses. Cela peut aider à
capturer l'importance relative des catégories dans l'analyse.
✓ Encodage basé sur des cibles : Cette méthode consiste à encoder les catégories en
utilisant les statistiques de la variable cible associée. Par exemple, pour chaque
catégorie, vous pouvez calculer la moyenne de la variable cible pour les observations
appartenant à cette catégorie, puis attribuer cette valeur moyenne en tant que code pour
la catégorie. Cela permet de capturer les relations entre les catégories et la variable cible.

AFILAL TRIBAK Firdaous

45
Chapitre 3

Le choix de la technique de codage dépendra du type de données, de la nature des catégories et


des exigences spécifiques de l'analyse. Le codage des variables catégorielles est une étape
importante pour préparer les données avant de les utiliser dans des modèles d'apprentissage
automatique ou d'autres analyses.

Notre jeu de données contient plusieurs variables catégoriques on cite :

« DIR/ IND », « DEPARTEMENT », « CAUSE DEPART », « SEXE », « Situation


familiale », « CONTRAT ».

Nous avons travaillé par plusieurs types de codage comme suit :

✓ L'encodage des variables "DIR/ IND" et "DEPARTEMENT" utilise un encodage


ordinaire où les catégories sont assignées à des valeurs numériques ordinales. Par
exemple, "Administration" est codé comme 0, "Direct" est codé comme 1 et
"INDIRECT" est codé comme 2.
✓ L'encodage de la variable "CAUSE DEPART" est un encodage basé sur des cibles, où
les catégories sont encodées en utilisant les statistiques de la variable cible associée. Les
catégories telles que "Décès", "Démission", "Départ", etc. ont été assignées à des valeurs
numériques de 0 à 5.
✓ L'encodage de la variable "SEXE" est un encodage binaire où les catégories "F" et "H"
sont converties en valeurs binaires 0 et 1 respectivement.
✓ L'encodage de la variable "Situation familiale" est également un encodage ordinaire où
les catégories sont assignées à des valeurs numériques ordinales de 0 à 3, représentant
respectivement les catégories "Célibataire", "Marié", "Divorcé" et "Veuf".
✓ L'encodage de la variable "CONTRAT" est un autre encodage ordinaire où les
catégories sont assignées à des valeurs numériques ordinales de 0 à 4, représentant les
différents types de contrats.

3.5 La normalisation
De nombreux algorithmes d’apprentissage machine fonctionnent mieux ou convergent plus
rapidement lorsque les caractéristiques sont à une échelle relativement similaire et / ou presque
distribuées normalement. Des exemples de telles familles d’algorithmes incluent :

— régression linéaire et logistique

AFILAL TRIBAK Firdaous

46
Chapitre 3

— voisins les plus proches

— les réseaux de neurones

— machines à vecteurs de support avec fonctions de noyau à polarisation radiale

— analyse en composantes principales

— analyse discriminante linéaire

D’une façon générale :

— Échelle/Scale signifie généralement changer la plage des valeurs. La forme de la distribution


ne change pas. La plage est souvent définie entre 0 et 1.

— Standariser signifie généralement changer les valeurs pour que l’écart type de distribution
par rapport à la moyenne soit égal à un. Il produit quelque chose de très proche d’une
distribution normale. La mise à l’échelle est souvent implicite.

— Normaliser peut signifier l’une des choses ci-dessus (et plus !).
La normalisation dans le prétraitement des modèles de machine Learning est une étape cruciale
pour garantir que les données d'entrée sont comparables et que les modèles sont entraînés de
manière efficace. Elle consiste à transformer les données d'entrée pour qu'elles soient dans une
plage commune et limitée, en utilisant des techniques telles que la normalisation min-max, la
normalisation Z-score ou la normalisation par plage. Ces techniques permettent de normaliser
les données en fonction de leur plage de valeurs, de leur moyenne et de leur écart-type. La
normalisation est essentielle pour améliorer la précision et la stabilité des résultats des modèles
de machine Learning, car elle permet de s'assurer que les données sont comparables et que les
algorithmes peuvent être entraînés de manière plus efficace. En fin de compte, la normalisation
est une étape importante pour garantir que les modèles de machine Learning sont capables de
fournir des résultats précis et fiables.

Nous avons utilisé la normalisation min-max, elle est souvent utilisée dans les modèles de
machine Learning car elle est simple à mettre en œuvre et peut être efficace pour les données
qui ont des valeurs bornées. La normalisation Min-Max est basée sur la transformation des
données en une plage de valeurs comprises entre 0 et 1, en utilisant la formule suivante :

X - Xmin
X =
scaled
Xmax - Xmin
AFILAL TRIBAK Firdaous

47
Chapitre 3

Où x est la valeur d'entrée, min est la valeur minimale et max est la valeur maximale de la plage
de valeurs. Cette technique permet de conserver les relations entre les valeurs d'entrée et de
garantir que les données sont comparables. La normalisation Min-Max est souvent utilisée dans
les modèles de machine Learning pour améliorer la précision et la stabilité des résultats, en
particulier lorsque les données ont des valeurs bornées.

3.6 Corrélation :
La corrélation est une mesure statistique qui évalue la relation entre deux variables. Elle indique
si les deux variables évoluent ensemble, et dans quelle mesure. Une corrélation positive signifie
que les deux variables ont tendance à évoluer dans la même direction, tandis qu'une corrélation
négative signifie que les deux variables ont tendance à évoluer dans des directions opposées.

Il est important de noter que la corrélation ne prouve pas la causalité. Cela signifie que même
si deux variables sont corrélées, cela ne signifie pas nécessairement qu'une variable cause
l'autre. Il est également important de prendre en compte d'autres facteurs qui pourraient
influencer la relation entre les deux variables.

En résumé, la corrélation est une mesure statistique qui évalue la relation entre deux variables.
Elle peut être utilisée pour déterminer si une relation existe entre les deux variables et pour
évaluer la force et la direction de cette relation. Cependant, il est important de noter que la
corrélation ne prouve pas la causalité, et que d'autres facteurs doivent être pris en compte pour
comprendre pleinement la relation entre les deux variables.

La fonction « Corr() » évalue la corrélation entre toutes les caractéristiques, puis peut être
représentée graphiquement avec un code couleur

AFILAL TRIBAK Firdaous

48
Chapitre 3

Figure 17: Corrélation entre les variables


Lorsqu'il n'y a pas de corrélation entre 2 variables lorsque la corrélation est égale à 0 ou proche
de 0), la couleur est grise. Le rouge le plus fonce indique une corrélation positive parfaite, tandis
que le bleu le plus sombre indique une corrélation négative parfaite.

Lors de l'évaluation de la corrélation entre toutes les entités, la méthode «corr ()» inclut la
corrélation de chaque entité avec elle-même, qui est toujours 1, c'est pourquoi ce type de
graphique a toujours la diagonale rouge.

On est intéressée de la corrélation entre notre Target (démission) et les autres entités.

3.7 Calcule de tune over (l’attrition du personnel) :

Dans cette partie, nous effectuons le calcul du taux de rotation du personnel sur une période
spécifiée à partir de notre DataFrame. Ce calcul est réalisé dans le but de faire une prédiction
du taux de rotation futur. Le code itère sur chaque année de la période et effectue le calcul du
taux de rotation pour chaque année. Les résultats sont ensuite stockés dans un dictionnaire. À
la fin, le taux de rotation moyen sur l'ensemble de la période est calculé. Les résultats pour
chaque année ainsi que le taux de rotation moyen sont affichés à la fin de cette partie. Cette
analyse permet de suivre l'évolution du taux de rotation du personnel au fil du temps et fournit
des indications sur la stabilité de l'effectif de l'entreprise. Ces résultats peuvent ensuite être

AFILAL TRIBAK Firdaous

49
Chapitre 3

utilisés pour faire des prédictions sur le taux de rotation futur et aider à prendre des décisions
stratégiques en matière de gestion des ressources humaines.

Figure 18: Attrition du personnel annuel

3.8 Sélection des caractéristiques :


Les caractéristiques de données qu’on utilise pour former des modèles d’apprentissage machine
ont une énorme influence sur les performances. C’est-à-dire ses caractéristiques non pertinentes
ou partiellement pertinentes peuvent avoir un impact négatif sur les performances des modèles
déjà établis. La sélection des caractéristiques est un processus dans lequel on sélectionne
automatiquement les fonctionnalités des données qui contribuent le plus à la variable de
prédiction ou à la sortie. La présence des caractéristiques non pertinentes dans des données peut
réduire la précision de nombreux modèles, en particulier les algorithmes linéaires tels que la
régression linéaire et logistique. La sélection des caractéristiques avant la modélisation des
données présente trois avantages :

— Réduit les Overfitting : Moins de données redondantes signifie moins d’opportunités pour
prendre des décisions basées sur le bruit.

— Améliore la précision : moins de données trompeuses signifie que la précision de la


modélisation est améliorée

AFILAL TRIBAK Firdaous

50
Chapitre 3

--Réduit le temps de l’entrainement : moins de données signifie que les algorithmes s’entraînent
plus rapidement. Pour le langage Python la bibliothèque la plus réputée pour l ‘apprentissage
machine est sklearn, cette bibliothèque plusieurs méthode pour la sélection les caractéristiques
de données, caractéristiques ».

3.9 L'importance des caractéristiques


L'importance des caractéristiques, ou "feature importance" en anglais, est un concept clé en
apprentissage automatique. Il s'agit de quantifier l'influence relative de chaque caractéristique
lors de la prédiction de la variable cible par un modèle. Ceci aide à identifier les caractéristiques
les plus pertinentes dans le processus de prédiction ou de classification.

Il existe plusieurs méthodes pour calculer l'importance des caractéristiques, et certaines sont
spécifiques à différents types de modèles. Par exemple, pour les arbres de décision et les forêts
aléatoires, l'importance d'une caractéristique peut être évaluée par la méthode MDI (Mean
Decrease Impurity), qui mesure le nombre de fois qu'une caractéristique est utilisée pour diviser
les données, pondéré par l'amélioration apportée par cette division.

Une autre méthode est la permutation importance, qui mesure l'augmentation de l'erreur de
prédiction lorsqu'on permute aléatoirement les valeurs d'une caractéristique tout en gardant les
autres intactes. Si l'erreur de prédiction augmente significativement, cela indique que cette
caractéristique a une importance particulière pour le modèle.

Dans le cas des modèles linéaires, la méthode Lasso (Least Absolute Shrinkage and Selection
Operator) peut être utilisée. Dans ces modèles, certaines pondérations des caractéristiques
peuvent être réduites à zéro, ce qui indique que ces caractéristiques sont moins importantes pour
la prédiction.

En général, comprendre l'importance des caractéristiques peut contribuer à simplifier les


modèles en éliminant les caractéristiques moins importantes, améliorer la précision en réduisant
le surajustement, identifier les erreurs potentielles dans les données, et fournir des idées
précieuses sur les relations entre les caractéristiques et la variable cible.

Voici un exemple de L'importance des caractéristiques utilisant la méthode la permutation


importance :

AFILAL TRIBAK Firdaous

51
Chapitre 3

Figure 19: L'importance des variables


Vous pouvez voir que nous obtenons un score d’importance pour chaque attribut, plus le score
est grand plus l’attribut est important.

3.10 La décomposition des données :


Les caractéristiques (ou variables) d'un ensemble de données peuvent être divisées en deux
catégories : les variables indépendantes (x) et les variables dépendantes (y). Les variables
indépendantes sont également appelées variables explicatives ou prédicteurs, tandis que les
variables dépendantes sont également appelées variables de réponse ou cible.

Les variables indépendantes (x) sont les caractéristiques qui sont utilisées pour prédire ou
expliquer les valeurs de la variable dépendante (y).

AFILAL TRIBAK Firdaous

52
Chapitre 3

Il est important de noter que la division en x et y dépend du problème spécifique que l'on
cherche à résoudre et des données disponibles. Dans certains cas, il peut y avoir plusieurs
variables dépendantes ou plusieurs variables indépendantes.

Dans notre cas les attributs sont divisés de la manière suivante :

L’axe Y : l’attribut cible (Target), nous somme basé sur l’attribut « demission »

L’axe X : « ANCIENNETE », « FonctionCat », « SalairePrime », « DEPARTEMENT »,


« SEXE », « age », « CONTRAT », « DIR/IND »

Pour le choix de X on est basé sur importance de caractéristiques que nous avons déjà réalisée

Apres la détermination de X et Y, nous avons passé à la décomposition des donnes

La décomposition des données en train et test est une technique qui permet de diviser un
ensemble de données en deux parties : un ensemble d'entraînement (train set) et un ensemble
de test (test set). Cette technique est utilisée pour évaluer la performance d'un modèle ML.

Figure 20: La décomposition des données


L'ensemble d'entraînement est utilisé pour entraîner le modèle, c'est-à-dire pour ajuster les
paramètres du modèle aux données d'entraînement. L'ensemble de test est utilisé pour évaluer
la performance du modèle sur des données qui n'ont pas été utilisées pour l'entraînement.

La décomposition des données en train et test est importante pour éviter le surapprentissage
(overfitting) du modèle, qui se produit lorsque le modèle est trop complexe et s'adapte trop bien
aux données d'entraînement, mais ne généralise pas bien aux nouvelles données. En utilisant un
ensemble de test, on peut évaluer la performance du modèle sur des données qui n'ont pas été
utilisées pour l'entraînement et estimer sa capacité à généraliser à de nouvelles données.

AFILAL TRIBAK Firdaous

53
Chapitre 3

La taille de l'ensemble d'entraînement et de l'ensemble de test dépendent du nombre de données


disponibles et de la complexité du modèle. En général, on utilise environ 70 à 80% des données
pour l'ensemble d'entraînement et le reste pour l'ensemble de test

Pour ce faire, nous avons utilisé la bibliotheque Scikit-Learn et plus particulierement la function
train_test_split()

4 Conclusion :
Dans ce chapitre, nous avons préparé les données en les important, en les nettoyant et en
sélectionnant les caractéristiques pertinentes. Dans le prochain chapitre, nous mettrons en
œuvre notre modèle en choisissant l'algorithme approprié et en entraînant le modèle sur nos
données préparées.

AFILAL TRIBAK Firdaous

54
Chapitre 5

Chapitre4 : Elaboration du modèle

Dans ce chapitre, nous abordons l'élaboration du modèle, sa


création, les algorithmes utilisés et l'évaluation de ces modèles
afin de choisir le meilleur parmi eux

AFILAL TRIBAK Firdaous

55
Chapitre 5

1 Elaboration du modèle
1.1 Entrainement de modèle :
L'entrainement des modèles à l'ensemble de formation est une étape fondamentale de
l'apprentissage automatique. Ce processus implique la formation ou l'apprentissage à partir des
données de l'ensemble de formation afin de créer un modèle précis capable de prédire la variable
de sortie.

Le modèle utilise l'ensemble d'entraînement pour comprendre les relations entre les entrées, ou
variables indépendantes, et la sortie, ou variable dépendante. Pour ce faire, il utilise l'algorithme
spécifique au modèle choisi.

Figure 21: Entrainement et evaluation du modéle

Par exemple, dans le cas d'une régression linéaire, le modèle "s'adapte" aux données en trouvant
la ligne de meilleur ajustement qui représente la relation entre les variables d'entrée et de sortie.
Dans le cas d'un arbre de décision, le modèle apprend les questions optimales à poser pour
prédire la variable de sortie. Dans l'apprentissage profond, le modèle ajuste les poids et les biais
en fonction de l'erreur de ses prédictions sur l'ensemble d'apprentissage, améliorant ainsi
progressivement ses performances.

Une fois que le modèle a été "adapté" à l'ensemble d'apprentissage, il peut être utilisé pour faire
des prédictions sur de nouvelles données inédites. Toutefois, il est essentiel d'évaluer le modèle
sur un ensemble de tests distinct pour s'assurer qu'il n'a pas simplement mémorisé les données
d'apprentissage, mais qu'il a appris à généraliser à partir de celles-ci. Cela permet d'évaluer les
performances du modèle et sa capacité à faire des prédictions précises sur de nouvelles données.

AFILAL TRIBAK Firdaous

56
Chapitre 5

1.2 Choix de modèle


Pour prédire si un employé va démissionner ou non, nous avons utilisé la classification binaire.
Cette méthode est couramment utilisée pour prédire des variables binaires comme la colonne
"démission" de notre modèle. Cette colonne est une colonne booléenne qui indique si un
employé a démissionné ou non. En utilisant la classification binaire, nous avons pu prédire avec
précision si un employé allait démissionner ou non, ce qui nous a permis de prendre des mesures
préventives pour réduire le taux d'attrition du personnel. Le taux d'attrition a été calculé en
divisant le nombre d'employés qui ont quitté l'entreprise par le nombre total d'employés. Grâce
à notre modèle de prédiction, nous avons pu réduire le taux d'attrition de notre entreprise, ce
qui a contribué à améliorer la rétention des employés et la productivité globale de l'entreprise.

1.3 Algorithmes utilisés


Pour ce modèle, nous avons testé plusieurs algorithmes de classification (Naive Bayes,
Regression Logistique, KNN, SVM, Arbre de Décision, Random Forest aussi
GradientBoostingClassifier) pour comparer leurs performances et choisir celui qui donne les
meilleurs résultats.

2 Évaluation modèle
2.1 Accuracy :
La précision dans les problèmes de classification est le nombre de prédictions correctes faites

par le modèle sur toutes les sortes de prédictions effectuées.

[22]
Figure 22: La formule de l'accuracy

l’accuracy est une bonne mesure lorsque les classes de variables cibles dans les données sont
presque équilibrées.

AFILAL TRIBAK Firdaous

57
Chapitre 5

l'accuracy est le rapport entre le nombre de prédictions correctes faites par le modèle et le
nombre total de prédictions. Par exemple, si un modèle fait 100 prédictions et que 80 sont
correctes, l'accuracy de ce modèle serait de 80%.

Figure 23: Accuracy des algorithmes

Nous observons que les valeurs de précision (accuracy) n'atteignent pas plus de 60%. Cette
situation pourrait indiquer un problème. Initialement, nous avons supposé que cela pouvait être
lié à la complexité du modèle. Par conséquent, nous envisageons d'adopter un modèle de Deep
Learning pour évaluer et potentiellement améliorer les performances de notre système

Donc nous avons tester l’algorithme MLP

MLP : Multi-Layer perceptron définit l'architecture la plus complexe des réseaux neuronaux
artificiels. Il est essentiellement formé de plusieurs couches de perceptron. TensorFlow est un
cadre d'apprentissage profond très populaire publié par, et ce carnet guidera la construction d'un
réseau neuronal avec cette bibliothèque. Si nous voulons comprendre ce qu'est un perceptron
multicouche, nous devons développer un perceptron multicouche à partir de zéro en utilisant
Numpy.[8]

Après la mise en œuvre de cet algorithme, nous rencontrons le même problème

AFILAL TRIBAK Firdaous

58
Chapitre 5

2.1.1 Détection de problème :

Après une série approfondie de recherches et de tests sur notre dataset et les algorithmes utilisés,
nous avons identifié le problème qui semble affecter la précision de nos modèles. Il s'avère que
l'incohérence des données est à l'origine de ce problème. Par exemple, nous avons observé des
cas où plusieurs employés partagent les mêmes caractéristiques « âge, situation familiale,
ancienneté, salaire, type de contrat, etc. » mais l'un démissionne tandis que l'autre reste en poste.

Dans ce contexte, nous avons envisagé deux solutions potentielles. La première serait
d'introduire de nouvelles variables, comme le niveau de satisfaction au travail, les primes, la
performance professionnelle, etc. Cependant, cette solution n'est pas viable à l'heure actuelle,
car nous ne disposons pas de ces informations.

La deuxième solution consiste à filtrer les données le plus finement possible pour éliminer les
incohérences. Après mûre réflexion, nous avons décidé de privilégier cette approche. Nous
allons donc mettre en œuvre un filtrage plus rigoureux des données pour améliorer la précision
de nos modèles.

2.2 Cross validation :


C'est une méthode d'évaluation de la performance d'un modèle qui vise à être plus robuste par
rapport à une simple division des données en un ensemble d'entraînement et un ensemble de
test. Le principe est de diviser l'ensemble de données en 'k' sous-ensembles (ou "folds"), puis
d'entraîner le modèle 'k' fois, chaque fois en utilisant un sous-ensemble différent comme
ensemble de test et les autres sous-ensembles comme ensemble d'entraînement. La performance
du modèle est ensuite la moyenne des performances obtenues pour chaque entraînement.

Figure 24:Itérations de validation croisée

AFILAL TRIBAK Firdaous

59
Chapitre 5

2.3 GridSearch :
La recherche sur grille est une technique que nous utilisons pour choisir les meilleurs
paramètres pour notre modèle d'apprentissage automatique.

La manière d'aborder ce problème en utilisant la recherche sur grille serait d'essayer toutes les
combinaisons possibles de ces paramètres et de voir quelle combinaison donne le meilleur
temps au tour. C'est un processus méthodique qui garantit que vous essayez toutes les
combinaisons possibles et que vous finirez par trouver la meilleure. Mais cela peut aussi prendre
beaucoup de temps si vous avez beaucoup de paramètres différents à régler.

Dans notre cas, les "paramètres" sont les différentes parties de notre modèle d'apprentissage
automatique que nous pouvons régler pour qu'il fonctionne le mieux possible avec nos données.
La "meilleure combinaison" est celle qui fait que notre modèle prédit le plus précisément
possible les résultats que nous essayons de prédire.

Il convient de mentionner que bien que la recherche sur grille soit une approche exhaustive et
systématique pour trouver la meilleure combinaison de paramètres, elle peut être coûteuse en
termes de temps et de ressources, en particulier lorsque le nombre de paramètres ou de valeurs
possibles est élevé. C'est pourquoi d'autres techniques, comme la recherche aléatoire, sont
parfois utilisées pour gagner du temps, même si elles n'offrent pas la garantie de trouver la
meilleure combinaison de paramètres.

2.4 Matrice de confusion :


La matrice de confusion est un outil utilisé en apprentissage automatique pour visualiser la
performance d'un algorithme de classification. Elle est particulièrement utile pour comprendre
les types d'erreurs que votre modèle fait.

Dans une matrice de confusion pour une tâche de classification binaire, nous avons quatre types
différents de résultats possibles pour chaque prédiction :

➢ Vrai Positif (VP ou TP en anglais) : Le modèle prédit la classe positive et la vraie classe
est également positive.
➢ Faux Positif (FP) : Le modèle prédit la classe positive mais la vraie classe est négative.
➢ Vrai Négatif (VN ou TN en anglais) : Le modèle prédit la classe négative et la vraie
classe est également négative.
➢ Faux Négatif (FN) : Le modèle prédit la classe négative mais la vraie classe est positive.

AFILAL TRIBAK Firdaous

60
Chapitre 5

2.5 Rapport de classification


Le rapport de classification est un résumé de la performance d'un modèle de classification. Il
fournit une évaluation détaillée de la précision, du rappel, du score F1 et du support pour chaque
classe dans un problème de classification.

Le rapport de classification comprend généralement les métriques suivantes pour chaque classe:

Précision : La précision est le rapport des vrais positifs sur la somme des vrais positifs et des
faux positifs. Elle mesure l'exactitude des prédictions positives pour une classe spécifique.

Rappel : Le rappel, également connu sous le nom de sensibilité ou taux de vrais positifs, est le
rapport des vrais positifs sur la somme des vrais positifs et des faux négatifs. Il mesure la
capacité du modèle à identifier correctement les instances positives.

Score F1 : Le score F1 est la moyenne harmonique de la précision et du rappel. Il fournit une


mesure équilibrée de la performance du modèle en prenant en compte à la fois la précision et le
rappel. Le score F1 est souvent utilisé lorsqu'il y a un déséquilibre entre les classes.

Support : Le support est le nombre d'instances de chaque classe dans l'ensemble de données
réel. Il représente le nombre d'échantillons dans l'ensemble de test qui appartiennent à une classe
spécifique.

3 Discussion des résultats


Après avoir entraîné et testé tous les modèles que j'ai sélectionnés pour ma thèse, il était
nécessaire de choisir le meilleur d'entre eux pour le déploiement dans mon application. Pour ce
faire, une évaluation approfondie des modèles entraînés a été réalisée. L'évaluation s'est basée
principalement sur la mesure de précision des classificateurs, en utilisant notamment la matrice
de confusion.

En plus de la matrice de confusion, un rapport de classification a également été généré pour


chaque modèle. Ce rapport fournit des métriques détaillées telles que la précision, le rappel, le
score F1 et le support pour chaque classe. Ces métriques permettent d'avoir une vision globale
de la performance du modèle pour chaque classe individuelle.

AFILAL TRIBAK Firdaous

61
Chapitre 5

3.1 Régression logistique

Figure 26: Rapport de classification de Régression logistique

Figure 25: Matrice de confusion de Régression logistiaue

3.2 Arbre de décision

Figure 27: : Rapport de classification d'arbre de decision

AFILAL TRIBAK Firdaous

62
Chapitre 5

Figure 28: Matrice de confusion de l'arbre de decision

3.3 Support Vector Machine

Figure 29: : Rapport de classification de SVM

Figure 30: Matrice de confusion de SVM

AFILAL TRIBAK Firdaous

63
Chapitre 5

3.4 Naive Bayes

Figure 31:: Rapport de classification de Naive Bayes

Figure 32: Matrice de confusion de Naive Bayes

3.5 KNN :

Figure 33:: Rapport de classification de KNN

AFILAL TRIBAK Firdaous

64
Chapitre 5

Figure 34:Matrice de confusion de KNN

3.6 Random forest :

Figure 35: : Rapport de classification de Random forest

Figure 36: Matrice de confusion de Random forest

AFILAL TRIBAK Firdaous

65
Chapitre 5

3.7 Xbosting :

Figure 37:: Rapport de classification de Xbosting

Figure 38: Matrice de confusion de Xbosting

4 Choix de l’algorithme :
Après avoir filtré notre ensemble de données et effectué des comparaisons, nous avons conclu
que l'algorithme le plus performant est le Gradient Boosting est un algorithme d'apprentissage
automatique utilisé pour résoudre des problèmes de classification. Il s'agit d'une technique
d'ensemble où plusieurs modèles d'arbre de décision simples sont combinés pour former un
modèle plus puissant.

Le processus de gradient boosting commence par la création d'un modèle d'arbre de décision
faible, qui est généralement un arbre de décision peu profond avec peu de feuilles. Ensuite, les

AFILAL TRIBAK Firdaous

66
Chapitre 5

prédictions de ce modèle initial sont utilisées pour calculer les résidus, c'est-à-dire les erreurs
entre les prédictions et les véritables valeurs cibles. Le modèle suivant est alors construit pour
prédire ces résidus.

Figure 39: Accuracy de modèle

Nous pouvons considérer cette précision comme acceptable compte tenu des données actuelles.

4.1 Overfitting:
Dans notre exemple, l'exactitude sur l'ensemble d'entraînement est de 83,74% tandis que
l'exactitude sur l'ensemble de test est de 80,70%. Il y a une légère différence entre les deux,
mais elle n'est pas très significative.

L'overfitting se produit lorsque l'exactitude sur l'ensemble d'entraînement est considérablement


plus élevée que l'exactitude sur l'ensemble de test. Dans notre cas, la différence est relativement
faible, ce qui indique que votre modèle généralise assez bien sur de nouvelles données.

4.2 Sauvegarde de modèle :


Apres le choix de modèle, et la vérification de sa performance, il est crucial de stocker le modèle
pour des prévisions ultérieure. Le module sklearn.externals qui dispose le modèle dans un
fichier constitue un moyen pratique de le faire

Figure 40: Sauvgarde de modéle

AFILAL TRIBAK Firdaous

67
Chapitre 5

5 Conclusion :
Nous avons sélectionné le modèle prédictif final et les résultats obtenus étaient extrêmement
encourageants. Dans le prochain chapitre, nous allons déployer notre modèle au sein d'une API
REST afin de pouvoir l'utiliser ultérieurement de manière pratique et efficace.

AFILAL TRIBAK Firdaous

68
Chapitre 5

Chapitre5 : Déploiement du modèle

Ce chapitre décrit l'architecture de notre projet, couvrant le


backend le frontend, et les interfaces utilisateur illustrées par des
captures d'écran. Finalement, il explique le déploiement via
Docker pour garantir la portabilité et la scalabilité.

AFILAL TRIBAK Firdaous

69
Chapitre 5

1 Architecture Du projet

Figure 41:Architecture Du projet

L'architecture de notre projet est structurée en plusieurs étapes clés pour assurer une
performance optimale et une efficacité sans faille. Tout d'abord, nous avons un modèle
d'apprentissage automatique qui génère des prédictions basées sur les données fournies. Ces
résultats sont ensuite traités et des calculs supplémentaires sont effectués dans le backend,
utilisant le Framework FastAPI pour une exécution rapide et une gestion efficace des requêtes.
Une fois le traitement terminé, les résultats sont envoyés à notre front-end, développé en
Angular, en utilisant le protocole HTTP et le format JSON. Ceci assure une interopérabilité
fluide et une intégration transparente entre nos différentes composantes. Enfin, pour faciliter le
déploiement, la gestion et la scalabilité de notre application, nous utilisons Docker. Cela nous
permet de construire, de déployer et de faire fonctionner notre application dans un
environnement conteneurisé, assurant ainsi sa portabilité et son fonctionnement fiable, peu
importe l'environnement dans lequel elle est déployée

AFILAL TRIBAK Firdaous

70
Chapitre 5

1.1 Backend
Dans cette partie, nous avons utilisé le framework FastAPI pour créer une API REST en
utilisant les méthodes HTTP notamment les requêtes POST et GET. Cette API sera consommée
par l'interface utilisateur pour récupérer les données et les prédictions de notre modèle ML, qui
ont été préalablement sauvegardées.

1.1.1 API REST

L'acronyme de "Application Programming Interface - Representational State Transfer"


(Interface de programmation d'application - Transfert d'état représentatif). Il s'agit d'un style
d'architecture utilisé pour la conception de services web dans le développement d'applications
distribuées et de systèmes basés sur le web.

Dans une API REST, les interactions entre le client et le serveur sont basées sur les principes
fondamentaux du protocole HTTP (Hypertext Transfer Protocol). Les API REST utilisent les
méthodes HTTP telles que GET, POST, PUT et DELETE pour effectuer des opérations sur les
ressources exposées par le serveur.

Nous avons créé trois requêtes POST et trois requêtes GET

1.2 Frontend
Dans la partie frontend, nous avons utilisé le framework Angular pour consommer l'API REST
et les données au format JSON envoyées par le backend. Ces données sont ensuite utilisées
dans un tableau de bord et dans la partie de prédiction.

Notre interface comporte trois pages :

1.2.1 Page Dashboard

Dans cette page, nous avons créé un tableau de bord convivial qui permet de visualiser la
répartition des données et d'obtenir des informations importantes sur les employés, notamment
ceux qui ont démissionné et ceux qui sont actuellement en poste. Grâce à une présentation claire
et compréhensible, il peut rapidement prendre connaissance de la répartition de l’effectif par
différentes catégories. Il permet ainsi d’observer les tendances, identifier les départements les
plus touchés par l'attrition du personnel, suivre l'évolution de l'ancienneté des employés, et bien

AFILAL TRIBAK Firdaous

71
Chapitre 5

plus encore. Ces informations précieuses aident à mieux comprendre la situation de l’équipe et
à prendre des décisions éclairées pour optimiser la gestion des ressources humaines.

Figure 42: Répartition des données

Nous avons généré trois graphiques en secteurs pour représenter la répartition des données selon
différents critères : le sexe, le département et le type de contrat.

Dans le premier graphique, nous avons représenté la répartition par sexe. Il est clair que la
majorité de nos employés sont des hommes, avec un pourcentage de 65%.

En ce qui concerne la répartition par département, nous avons identifié dix départements
différents. Cependant, il est clair que le département dominant est le département de Produit,
qui compte le plus grand nombre d'employés.

Le troisième graphique présente la répartition des différents types de contrat. Nous constatons
que le type de contrat le plus courant parmi nos employés est le Contrat à Durée Déterminée
(CDD).

Ces graphiques nous donnent un aperçu précieux de la composition de notre entreprise en


termes de sexe, de département et de type de contrat. Ils nous permettent de mieux comprendre
la répartition des effectifs et de prendre des décisions éclairées en conséquence.

AFILAL TRIBAK Firdaous

72
Chapitre 5

Figure 43:Graphique des démissions en fonction de l'âge et du salaire

Le diagramme présente neuf compartiments qui représentent le nombre de démissionnaires en


fonction de l'âge et du salaire. En l'observant, il devient évident que les deux tranches les plus
élevées en termes de démissions sont les suivantes :

Le premier compartiment concerne les employés de jeunes âges avec des salaires relativement
bas. Cela suggère que les employés dans cette catégorie sont plus enclins à quitter leur
emploi, peut-être en raison d'opportunités plus attractives ailleurs ou de besoins de
développement professionnel plus pressants.

Le deuxième compartiment est caractérisé par des salaires relativement faibles et une moyenne
d'âge comprise entre 28 et 42 ans. Cela indique qu'il existe une corrélation entre les salaires
plus bas et le départ des employés dans cette tranche d'âge, peut-être en raison de l'insatisfaction
salariale ou de l'absence de perspectives d'avancement

AFILAL TRIBAK Firdaous

73
Chapitre 5

Figure 44:Graphique des démissions en fonction de l'âge et du anciennté

Le diagramme présente neuf compartiments qui représentent le nombre de démissionnaires en


fonction de l'âge et de l'ancienneté dans l'entreprise. L'analyse de ce diagramme permet de tirer
les conclusions suivantes :

Le premier compartiment met en évidence les démissionnaires ayant un jeune âge et une faible
ancienneté dans l'entreprise. Cela suggère que les employés plus jeunes ont tendance à quitter
leur emploi plus fréquemment, peut-être pour explorer de nouvelles opportunités ou chercher
une meilleure adéquation avec leurs aspirations professionnelles.

Le deuxième compartiment concerne les démissionnaires qui ont une moyenne d'âge et une
faible ancienneté dans l'entreprise. Cela indique qu'il existe un lien entre l'ancienneté
relativement courte et le départ des employés de différentes tranches d'âge. Il peut y avoir
plusieurs raisons à cela, telles que des opportunités de carrière plus attrayantes ailleurs ou un
manque de satisfaction dans le travail actuel.

Le troisième compartiment met en évidence les démissionnaires ayant une grande ancienneté
et un âge moyen. Cela suggère que même avec une ancienneté élevée, certains employés
choisissent de quitter leur emploi, peut-être en raison de la stagnation professionnelle, du
manque de défis ou d'autres facteurs qui ne répondent plus à leurs attentes.

Le quatrième compartiment concerne les démissionnaires ayant à la fois une ancienneté et un


âge moyens. Cela souligne que même avec une expérience et une maturité professionnelles
modérées, certains employés décident de poursuivre leur carrière ailleurs, peut-être à la
AFILAL TRIBAK Firdaous

74
Chapitre 5

recherche de meilleures opportunités de croissance ou d'un meilleur équilibre entre vie


professionnelle et vie personnelle.

Figure 45:Nombre d'employés démissionnaires par catégorie d'âge.

Cet histogramme nous offre une représentation claire du nombre d'employés démissionnaires
répartis par catégorie d'âge. Une observation importante qui se dégage de cet histogramme est
que la catégorie d'âge entre 30 et 40 ans est celle qui compte le plus grand nombre d'employés
démissionnaires.

Ce constat met en évidence l'importance de se pencher plus attentivement sur cette tranche d'âge
spécifique afin de comprendre les raisons sous-jacentes à ce taux élevé de démissions. Il peut y
avoir divers facteurs contribuant à cette tendance, tels que des opportunités d'emploi
concurrentielles, des besoins de développement professionnel non satisfaits ou des aspirations
de carrière changeantes.

AFILAL TRIBAK Firdaous

75
Chapitre 5

Figure 46:Nombre d'employés démissionnaires par catégorie d'anciennté.


Cet histogramme, similaire au précédent mais avec l'ancienneté à la place de l'âge, met en
évidence une tendance intéressante. Nous pouvons observer que les employés ayant une longue
ancienneté ont un taux de démission plus élevé.

Figure 47:Nombre d'employés démissionnaires répartis par sexe.

Cet histogramme nous permet de visualiser le nombre d'employés démissionnaires en fonction


du sexe, et il est intéressant de constater que les pourcentages sont assez similaires entre les
deux sexes.

En examinant attentivement l'histogramme, nous pouvons observer que le nombre d'employés


démissionnaires est réparti de manière équitable entre les hommes et les femmes, avec des

AFILAL TRIBAK Firdaous

76
Chapitre 5

pourcentages relativement similaires. Cette constatation indique que les motifs de démission ne
semblent pas être fortement liés au sexe des employés.

Figure 48:Nombre d'employés démissionnaires répartis par départment

Dans notre dernier graphique dans le tableau de bord, nous utilisons un histogramme pour
calculer le nombre d'employés démissionnaires par département. Après avoir calculé les
pourcentages, nous pouvons conclure que les départements qui enregistrent le plus grand
nombre de démissions sont l'IT et l'Ingénierie.

En utilisant ces différentes visualisations et analyses, nous sommes en mesure d'obtenir un


aperçu détaillé de la situation des démissions au sein de l'entreprise. Cela nous permet de cibler
les domaines clés nécessitant des mesures spécifiques pour améliorer la rétention des employés,
identifier les facteurs influençant les démissions et mettre en place des stratégies adaptées pour
créer un environnement de travail positif et motivant.

1.2.2 Page Predictions

Cette page est essentielle dans ce projet car elle représente la page de prédiction. Elle offre une
visualisation des moyennes de salaire, d'âge, d'ancienneté et d'attrition (turnover). De plus, elle
offre la possibilité de réaliser une analyse "what-if", permettant à l'utilisateur de voir l'impact
sur l'attrition en modifiant une des moyennes.

AFILAL TRIBAK Firdaous

77
Chapitre 5

De plus, la page comprend un graphique permettant de visualiser les taux de turnover annuels.
Ce graphique fournit une vue d'ensemble des fluctuations des taux de turnover au fil du temps,
ce qui peut aider à identifier des tendances saisonnières ou des périodes où l'attrition est plus
élevée.

Figure 49: Page de predictions

AFILAL TRIBAK Firdaous

78
Chapitre 5

Figure 50: Prédiction par modification de moyenne d'ancienneté


La fonctionnalité "what-if" permet à l'utilisateur d'explorer différents scénarios en modifiant les
valeurs moyennes et d'observer comment cela affecte le taux d'attrition. Cela offre une
perspective précieuse pour prendre des décisions stratégiques et mettre en place des actions
préventives pour réduire l'attrition.

AFILAL TRIBAK Firdaous

79
Chapitre 5

Figure 51: Prédiction par modification de moyenne de salaire

En résumé, cette page de prédiction est un outil puissant pour comprendre et analyser l'attrition
dans l'entreprise. Elle permet d'explorer différentes perspectives en modifiant les valeurs
moyennes et offre une visualisation claire des taux de turnover annuels. Cela aide à prendre des
décisions informées et à mettre en place des stratégies de rétention du personnel plus efficaces.

1.2.3 Page Statistics


La dernière page est dédiée aux statistiques et revêt une importance particulière. Elle offre à
l'utilisateur la possibilité de visualiser toutes les prédictions possibles à travers des graphiques
linéaires, ce qui facilite la compréhension des résultats et permet d'explorer différentes variables
pour prendre des décisions éclairées.

AFILAL TRIBAK Firdaous

80
Chapitre 5

Figure 52:Les prédictions possible par Age

Cette représentation graphique nous permet de déterminer toutes les prédictions possibles du
taux de turnover en fonction de l'âge des employés. De cette analyse, on peut déduire des
tendances distinctes : les employés de plus de 50 ans présentent un taux de démission
significativement élevé, les employés de moins de 23 ans ont une propension à démissionner
beaucoup moins, tandis que la catégorie d'âge comprise entre 40 et 50 ans montre un taux de
démission relativement bas.

Plusieurs facteurs pourraient expliquer ces tendances. À plus de 50 ans, certains employés
peuvent choisir de prendre leur retraite ou de changer de carrière, ou trouver plus difficile de
s'adapter aux nouvelles technologies ou aux changements organisationnels, ce qui peut mener
à une démission. En revanche, les employés de moins de 23 ans, probablement en début de
carrière, cherchent à établir leur crédibilité et leur expérience, d'où un taux de démission plus
faible. Enfin, les employés âgés entre 40 et 50 ans, souvent bien établis dans leur carrière,
pourraient chercher à conserver leur emploi pour des raisons de sécurité financière, de stabilité
ou pour préparer leur retraite.

Cependant, il est important de noter que ces tendances peuvent varier en fonction de nombreux
autres facteurs tels que l'industrie, l'environnement de travail, les avantages sociaux, entre
autres.

AFILAL TRIBAK Firdaous

81
Chapitre 5

Figure 53:Les prédictions possible par Ancienneté

Cette représentation graphique, similaire à la précédente, présente des prédictions du taux de


turnover en fonction de l'ancienneté des employés. On y observe des tendances spécifiques liées
à la durée de service. Les employés ayant une ancienneté moyenne de moins de 2 ans présentent
le taux de démission le plus bas. Cela pourrait s'expliquer par le fait qu'ils sont relativement
nouveaux dans l'organisation et sont probablement encore en phase d'apprentissage et
d'intégration.

À l'opposé, une forte démission est constatée chez les employés ayant une ancienneté moyenne
supérieure à 7 ans. Cela pourrait être dû à divers facteurs tels que le désir de changement, la
stagnation de carrière, ou la recherche de nouvelles opportunités après avoir acquis une certaine
expérience et compétence.

Cependant, le taux de démission semble diminuer lorsque l'ancienneté dépasse les 11 ans de
service. Il est possible que ces employés, ayant une longue expérience au sein de l'entreprise,
aient atteint des positions plus stables ou plus élevées, ou qu'ils se sentent plus satisfaits et
engagés en raison de leur implication et de leur loyauté envers l'organisation sur une longue
période.

AFILAL TRIBAK Firdaous

82
Chapitre 5

Figure 54:Les prédictions possible par Salaire

Dans cette représentation graphique, qui suit le même principe que les précédentes, le taux de
turnover est présenté en fonction du salaire, catégorisé par tranche de 500 DH. Il est notable
qu'une augmentation significative du taux de turnover se produit dans l'intervalle de 4000 à
7000 DH.

Toutefois, il est important de noter que la colonne des salaires a été générée en se basant sur le
poste des employés. Par conséquent, ces résultats pourraient ne pas être entièrement précis. En
effet, bien que le poste d'un employé donne une indication générale de son niveau de salaire, il
y a souvent des variations significatives au sein d'une même fonction, dues à des facteurs tels
que l'expérience, les compétences spécifiques, la performance individuelle, entre autres.

De plus, l'augmentation du taux de turnover dans l'intervalle de salaire de 4000 à 7000 DH


pourrait suggérer plusieurs facteurs. Les employés de cette catégorie salariale sont
potentiellement plus susceptibles de chercher et de trouver des opportunités d'emploi mieux
rémunérées ailleurs, ou pourraient estimer que leur salaire actuel ne reflète pas adéquatement
leur valeur. Il est également possible que cette augmentation du taux de turnover soit liée à une
plus grande mobilité professionnelle dans cette tranche de salaire.

AFILAL TRIBAK Firdaous

83
Chapitre 5

1.3 Dépoilement dans docker :


Dans le volet déploiement de notre projet, nous avons opté pour Docker en raison des nombreux
avantages qu'il offre. En travaillant avec Docker, nous bénéficions d'une isolation parfaite,
chaque application étant exécutée dans son propre environnement avec ses propres
dépendances, ce qui élimine les conflits potentiels. La portabilité est également un avantage clé
: nous pouvons construire notre application une fois, puis la déployer partout où Docker est
installé, indépendamment du système d'exploitation. En outre, Docker assure une cohérence
inégalée entre les environnements de développement, de test et de production, ce qui nous aide
à éviter les problèmes traditionnels du type "ça fonctionnait sur ma machine". De plus, avec
Docker, nous sommes bien équipés pour mettre à l'échelle notre application rapidement et
efficacement en fonction des besoins. Enfin, grâce à l'efficacité de Docker en matière de
ressources et à son intégration fluide dans les pipelines CI/CD, nous pouvons déployer et mettre
à jour notre application de manière plus rapide et plus automatisée.

2 Conclusion :

Dans ce dernier chapitre, nous avons exploré notre interface qui nous permet de visualiser les
prédictions finales de notre modèle. Grâce à cette interface, nous avons pu tirer des conclusions
et prendre des décisions éclairées. Cela nous offre une perspective précieuse sur les résultats
obtenus et nous permet de mieux comprendre l'impact de notre modèle sur notre problème
spécifique. Restez avec nous pour découvrir les informations captivantes que nous avons pu
extraire de cette expérience et les implications pratiques que cela entraîne.

AFILAL TRIBAK Firdaous

84
Conclusion

Conclusion
Au terme de ce rapport de projet de fin d'études, nous avons développé une solution
d'intelligence artificielle permettant de prédire l'attrition du personnel. Malgré les limitations
liées aux données disponibles, qui n'incluaient pas des plusieurs informations potentiellement
pertinentes telles que la satisfaction au travail, la performance des employés, ou le nombre de
projets gérés…etc, nous avons fait preuve de rigueur pour extraire le maximum d'informations
pertinentes.

Par ailleurs, l'implémentation de cette solution au sein d'une interface utilisateur intuitive
permet non seulement de visualiser les résultats de manière claire et concise, mais aussi
d'effectuer des analyses de type "what-if". Cela donne à l'utilisateur la possibilité de voir
comment des modifications des variables, telles que l'âge, le salaire ou l'ancienneté, peuvent
influer sur les prédictions de l'attrition.

Cette analyse en profondeur offre également la possibilité d'identifier les tranches spécifiques
pour chaque variable qui contribuent à une moyenne de turnover faible ou élevée. Cela fournit
un outil précieux pour les gestionnaires de ressources humaines, leur permettant de mieux
comprendre et d'aborder le problème de l'attrition.

En somme, ce projet a démontré l'énorme potentiel de l'IA dans le domaine des ressources
humaines. Bien que des défis subsistent, nous sommes confiants que les progrès continus de
cette technologie permettront d'améliorer encore plus l'efficacité et l'efficience de la gestion des
ressources humaines à l'avenir.

AFILAL TRIBAK Firdaous

85
Perspectives

Perspectives
➢ Ajouter plus de fonctionnalités

Cela comprend l'ajout de paramètres tels que la satisfaction au travail, la performance des
employés, la gestion du stress et l'absentéisme. L'incorporation de ces facteurs pourrait nous
permettre d'offrir des prédictions plus précises et, par conséquent, d'aider les décideurs à
prendre des actions plus informées pour minimiser le turnover du personnel.

➢ Enrichissement des données par des sources externes

Intégrer des données externes, telles que des informations sur le marché du travail ou des
indices de satisfaction des employés au niveau national, pourrait également aider à améliorer la
précision du modèle.

➢ Analyses de tendances

En plus de prédire le turnover, le système pourrait être programmé pour identifier et


communiquer les tendances à long terme. Par exemple, il pourrait signaler si le turnover a
tendance à augmenter pendant certaines périodes de l'année ou dans certains départements.

➢ Généraliser le code

En structurant le code de manière à ce qu'il puisse être facilement adapté à différentes situations
ou jeux de données, nous augmentons sa réutilisabilité et facilitons sa maintenance et ses mises
à jour futures. Cela offre une flexibilité précieuse pour adapter notre modèle à divers contextes
et optimiser son efficacité.

AFILAL TRIBAK Firdaous

86
Références

Références

Webographie
• [1] https://fr.wikipedia.org/wiki/Python_(langage)
• [2] https://fr.wikipedia.org/wiki/Angular
• [6] https://fr.wikipedia.org/wiki/NumPy#cite_note-3
• [7] https://fr.wikipedia.org/wiki/Pandas
• [8] https://fr.wikipedia.org/wiki/Matplotlib#cite_note-plot-5
• [9] https://mobiskill.fr/blog/conseils-emploi-tech/angular-material-vs-bootstrap-un-
guide-comparatif-pour-
2022/#:~:text=Angular%20Material%20vise%20%C3%A0%20fournir,principes%20d
e%20conception%20Web%20modernes.
• [10] https://fr.wikipedia.org/wiki/Chart.js
• [11] https://fr.wikipedia.org/wiki/Microsoft_Excel#cite_note-2 [12]
• [13] https://www.saagie.com/fr/blog/quest-ce-que-jupyter-et-pourquoi-est-il-un-outil-
incontournable/
• [14] https://insights.stackoverflow.com/survey/2021#section-most-popular-
technologies-integrated-development-environment
• [15] https://docs.conda.io/en/latest/
• [19]https://blent.ai/blog/a/apprentissage-supervise-definition
• [20]https://brightcape.co/apprentissage-supervise-vs-non-supervise/
• [21] https://fr.wikipedia.org/wiki/Apprentissage_par_renforcement
• [22] https://ai.stackexchange.com/questions/18162/why-is-there-more-than-one-way-
of-calculating-the-accuracy

AFILAL TRIBAK Firdaous

87
Références

Bibliographie

• [3] Lubanovic, Bill (2019-11-06). Introducing Python: Modern Computing in Simple


Packages (2nd ed.). O'Reilly Media, Inc. pp. 397, 418.
• [4] Katherine Noyes, « Docker: A 'Shipping Container' for Linux Code » [archive],
Linux, 1er août 2013 )
• [5] « Release history — scikit-learn 0.19.dev0 documentation » [archive], sur scikit-
learn.org (consulté le 2 novembre 2016)
• [16] Siegel, E. (Year). Predictive Analytics: The privacy pickle. Hewlett-Packard’s
prediction of employee behavior. Publisher.2023
https://pubsonline.informs.org/do/10.1287/LYTX.2013.06.02/full/
• [17] Bock, L. (2014). Here's Google's Secret to Hiring the Best People. Wired.
[https://www.wired.com/2015/04/hire-like-google
• [18] « apprentissage automatique »,Grand Dictionnaire terminologique, Office
québécois de la langue français

AFILAL TRIBAK Firdaous

88
Annexe

AFILAL TRIBAK Firdaous

89

Vous aimerez peut-être aussi