Académique Documents
Professionnel Documents
Culture Documents
Sujet :
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.
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...
À 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.
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.
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.
1
Intitulé du PFE
Intitulé du sujet :
Etablissement d’accueil :
EXPLEO Group
Encadrant Pédagogique :
Avant-propos
Encadrant Technique de Stage :
M. EZZAHRAOUI Saad
Période de projet :
Cadre du Stage :
2
Intitulé du PFE
Sigles et abréviations
Sigles Significations
IA Intelligence artificielle
ML Machine learning
RH Ressources humaines
3
Intitulé du PFE
4
Intitulé du PFE
5
Intitulé du PFE
6
Intitulé du PFE
7
Intitulé du PFE
8
Intitulé du PFE
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
10
Chapitre 1
11
Chapitre 1
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.
Expleo compte parmi ses clients des entreprises renommées dans différents secteurs. Parmi ces
clients figurent des acteurs majeurs tels que
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.
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).
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
14
Chapitre 1
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.
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 à
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.
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,
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.
16
Chapitre 1
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 :
17
Chapitre 1
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.
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.
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é ».
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.
19
Chapitre 1
Rôle Nom
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.
Formation ML
Entraînement du modèle
Évaluation du modèle
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.
21
Chapitre 1
Pour ce faire nous avons tracé le diagramme de GANTT, en se basant sur les tâches génériques
suivantes :
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.
22
Chapitre 2
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.
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.
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
25
Chapitre 2
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.
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.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.
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.
L ’apprentissage non supervisé consiste à ne disposer que de données d’entrée (X) et pas de
variables de sortie correspondantes.
1.2.3.1 Clustering
28
Chapitre 2
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]
29
Chapitre 2
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.
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
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
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
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
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
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]
32
Chapitre 2
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.
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]
33
Chapitre 2
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]
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]
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]
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]
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]
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]
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.
37
Chapitre 3
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
Attribut Description
FonctionCat La catégorie de la fonction de l'employé dans
l'entreprise.
39
Chapitre 3
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.
Figure 12: Le nombre des valeurs manquantes à Figure 13: Présentation des valeurs manquantes par
chaque colonne pourcentage
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.
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.
42
Chapitre 3
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.
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
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.
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.
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.
✓ 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.
45
Chapitre 3
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 :
46
Chapitre 3
— 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
48
Chapitre 3
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.
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
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.
— Réduit les Overfitting : Moins de données redondantes signifie moins d’opportunités pour
prendre des décisions basées sur le bruit.
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 ».
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.
51
Chapitre 3
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).
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.
L’axe Y : l’attribut cible (Target), nous somme basé sur l’attribut « demission »
Pour le choix de X on est basé sur importance de caractéristiques que nous avons déjà réalisée
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.
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.
53
Chapitre 3
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.
54
Chapitre 5
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.
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.
56
Chapitre 5
2 Évaluation modèle
2.1 Accuracy :
La précision dans les problèmes de classification est le nombre de prédictions correctes faites
[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.
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%.
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
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]
58
Chapitre 5
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.
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.
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.
60
Chapitre 5
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.
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.
61
Chapitre 5
62
Chapitre 5
63
Chapitre 5
3.5 KNN :
64
Chapitre 5
65
Chapitre 5
3.7 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
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.
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.
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.
68
Chapitre 5
69
Chapitre 5
1 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
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.
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.
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.
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
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.
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).
72
Chapitre 5
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
73
Chapitre 5
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.
74
Chapitre 5
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.
75
Chapitre 5
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.
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.
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.
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.
78
Chapitre 5
79
Chapitre 5
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.
80
Chapitre 5
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.
81
Chapitre 5
À 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.
82
Chapitre 5
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.
83
Chapitre 5
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.
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.
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.
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
➢ 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é.
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
87
Références
Bibliographie
88
Annexe
89