Vous êtes sur la page 1sur 14

Rapport du Projet P2M

Projet P2M : Elaboration d'un système intelligent d'aide à la décision


pour l'orientation au Bac.

Réalisé Par :
Iheb Maaoui
Amine Cheikh Mohamed

Encadré Par :
Mr. Mohamed Ayadi

Année universitaire : 2020/2021


Sommaire

Table de figures …………………………………………2

I. Partie introductive ……………………………………..3

1. Introduction au projet ………………………………....3


2. Problématique ………………………………………....3
3. Solution proposée ……………………………………..3

II. Projet machine learning .........................................................4

1. Élaboration de formulaire …………………………….....4


2. Traitement de données ………………………………....5
a. Gestion des valeurs manquantes ………………….5
b. Encodage des données …………………………....5
c. Équilibrage du jeu de données ………………….....6
d. Réduction de dimension …………………………..8
3. Recherche de modèle adéquat …………………………...8

III. projet développement application web …………………11

1. Interface graphique web ………………………………..11


2. Déploiement de l’interface ……………………………. 12

Bibliographie: ………………………………………………...13

1
Table de figures
Figure 1 : Dataset initial …………………………………………………4

Figure 2 : valeurs manquantes de certaines filières ………………………5

Figure 3 : Dataset après encodage ……………………………………… 6

Figure 4 :Bar chart du nombre d’observations par filière ……………….. 7

Figure 5 : Bar chart du nombre d’observations par filière après équilibrage de


Dataset ………………………………………………………………… 7

Figure 6 : Matrice d'autocorrélation ……………………………….. 8

Figure 7 : Précision moyenne des différents algorithmes lors de la


validation par Random Sampling ………………………………….. 9

Figure 8 : Précision moyenne des différents algorithmes lors de la


validation par Leave one out ……………………………………… 9

Figure 9 : Précision moyenne des différents algorithmes lors de la


validation par Repeated K Fold …………………………………… 10

Figure 10 : Précision de l’algorithme Fusion par itération …………. 10

Figure 11 : Interface Web sur Heroku et résultat de réponses au


formulaire pour la filière Lettres et Langues ………………………. 11

Figure 12 : Déploiement avec succès sur Heroku …………………. 12

2
I. Partie introductive
1. Introduction du projet :

Dans le cadre de notre projet P2M, nous avons opté pour réaliser un
système intelligent qui va guider les admis en baccalauréat lors de leurs
orientations. Ce projet est réalisé par Iheb Maaoui et Amine Cheikh
Mohamed et encadré par M. Mohamed Ayadi.

2. Problématique :

Bien que le choix de filière post bac en se basant sur les notes obtenues
peut être la technique d’orientation la plus répandue, mais elle peut être
non fiable dans certaines situations. De plus, il y a parfois des élèves
qu’après s’évaluer en se basant sur leurs notes, ils n’auraient toujours
aucune idée du parcours d’études après le bac qui leur conviendrait le
mieux. Une décision de cette importance doit se baser sur deux plans : le
plan technique (notes de l’élève) et plan psychologique.

3. Solution proposée :

Un système qui va se baser sur les personnalités des élèves afin de


déterminer la filière la plus convenable pour eux. Il va donc réduire
l’incertitude des élèves qui pourront prendre leurs décisions tout en tenant
compte de leurs caractères. Notre plateforme va poser des questions
proposées par un psychologue et grâce à un modèle intelligent, il va être
capable de recommander une filière. De plus, l’élève va être capable de
prendre une idée les axes de personnalité à améliorer s’il veut suivre une
filière différente que celle proposée par notre plateforme.

3
II. Projet Machine Learning

1. Élaboration de formulaire Collecte des données :

Notre première étape était d’élaborer un formulaire qui va être rempli par
des étudiants des différentes filières post bac. Ce formulaire propose 36
questions qui traitent leurs personnalités et va nous permettre de collecter
les données qui seront primordiales pour l’apprentissage de notre modèle.
L’étape suivante était de distribuer ce formulaire à nos collègues des
différentes filières pour qu’ils puissent le remplir. Nous avons visé 10
filières : Lettres & langues - Sc. humaines - Médias - Sc. juridiques - Arts
et métiers - Médicale- Gestion et sc. économiques - Sc. fondamentales -
Agriculture & environnement - Études ingénieurs OU Études
technologiques.
Nous avons pu collecter 125 échantillons.

Figure 1 : Dataset initial

4
2. Traitement des données :

a. Gestion des valeurs manquantes:

La première étape consiste à la gestion des valeurs manquantes dans la


dataset. Nous avons supprimé la question “Est-ce tu as choisi les maths
comme option?” car un nombre important des personnes n’ont pas
répondu à cette question.

Figure 2 : valeurs manquantes de certaines filières

Pour gérer les autres valeurs manquantes, nous avons remplacé les
réponses nulles par la réponse la plus fréquente.

b. Encodage des données :

L’encodage des données est une étape cruciale dans la préparation de


données pour la modélisation. Pour cette étude, nous avons choisi
d’encoder nos données sous deux types d’encodage: LabelEncoding et
OneHotEncoding.

L’encodage LabelEncoding consiste à attribuer aux valeurs catégorielles


d’une colonne des classes des entiers qui traduisent l’ordre de grandeur
entre elles. Cette méthode d’encodage est utilisée pour encoder les
variables ordinales.

5
L’encodage oneHotEncoder consiste à transformer une colonne en n
colonnes selon le nombre n de valeurs catégorielles présentent dans cette
colonne. Chaque colonne créée correspond alors aux valeurs différentes
de la colonne d’origine. Les valeurs des colonnes créées sont binaires.
Cette méthode d’encodage est utilisée pour encoder les variables ordinales
qui ne possèdent aucun ordre de grandeur entre elles.

Notre mission était de séparer les 36 questions selon les réponses


possibles, en deux catégories : des variables ordinales ou nominales.
Ensuite nous avons effectué le type d’encodage approprié pour chaque
type de question.

Figure 3 : Dataset après encodage

c. Équilibrage de jeu des données :

La classification de données dont la distribution des modalités de la classe


est très éloignée de la distribution uniforme (ou classes déséquilibrées), est
une situation qui augmente nettement la difficulté de l’apprentissage par
l’algorithme de classification. En effet, l’algorithme n’a que peu d’exemples
de la classe minoritaire sur lesquels apprendre. Il est donc biaisé vers la
population majoritaire et produit des prédictions potentiellement moins
robustes qu’en l’absence de déséquilibre.

6
Figure 4 :Bar chart du nombre d’observations par filière

Dans notre cas, la classe 9 est majoritaire par rapport aux autres classes.
Pour compenser ce déséquilibre, nous avons utilisé la technique de
suréchantillonnage aléatoire (Random Oversampling) qui consiste à
compléter les données de formation par des copies multiples de certaines
d’instances de la classe minoritaire.

Figure 5 : Bar chart du nombre d’observations par filière après équilibrage de


Dataset.

7
d. Réduction de dimension :

Pour réduire la dimension, nous avons supprimé une composante des


couples des variables qui sont fortement corrélés. La corrélation entre les
variables est déterminée grâce à la matrice de corrélation.

Figure 6 : Matrice d'autocorrélation

3. Recherche du modèle adéquat :

Nous avons choisi d’implémenter 3 algorithmes et comparer leurs


performances afin de pouvoir faire la décision : la régression logistique,
Machine à vecteurs de support (SVM) et l’algorithme de le perceptron
multicouche (multilayer perceptron MLP) qui représente un type de
réseau neuronal artificiel. Ensuite, nous avons élaboré un algorithme qui

8
se repose sur un mécanisme de vote entre les 3 autres algorithmes déjà
mentionnés.

Pour faire une validation de cet algorithme, nous avons utilisé trois
méthodes de validation d’algorithmes :

- random sampling : à chaque itération on prend d’une manière


aléatoire 0.66 de données pour l’apprentissage et 0.33 pour le test et en
calcule la précision des modèles.

Performances obtenues (100 itérations): précision moyenne de 0.91 pour


les 4 algorithmes.

Figure 7 : Précision moyenne des différents algorithmes lors de la


validation par Random Sampling

- Leave one out : à chaque itération on prend 1 échantillon pour le


test et les restes des échantillons sont pour l’apprentissage. Cette méthode
de validation croisée va nous donner une idée de précision des modèles si
on les donne tout la dataset comme données d’apprentissage.

Figure 8 : Précision moyenne des différents algorithmes lors de la


validation par Leave one out.

- Repeated KFold : la validation croisée à k blocs, « k-fold cross validation

9
» : on divise l'échantillon original en k échantillons (ou « blocs »), puis on
sélectionne un des k échantillons comme ensemble de validation pendant
que les k-1 autres échantillons constituent l'ensemble d'apprentissages.
Après l'apprentissage, on peut calculer une performance de validation.
Puis on répète l'opération en sélectionnant un autre échantillon de
validation parmi les blocs prédéfinis. À l'issue de la procédure nous
obtenons ainsi k scores de performances, un par bloc. La moyenne et
l'écart type des k scores de performances peuvent être calculés pour
estimer le biais et la variance de la performance de validation.

Figure 9 : Précision moyenne des différents algorithmes lors de la validation par


Repeated K Fold

Performance de l’algorithme Fusion en Repeated KFold :

Figure 10 : Précision de l’algorithme Fusion par itération

Dans le développement de l’interface web, on va utiliser l’algorithme


Fusion car il est le plus performant.

10
III. Projet développement application Web
1. Présentation de l’interface graphique :

Pour créer l’interface web de notre projet, nous avons opté pour le
Framework Open sources Streamlit de Python qui est utilisé pour des
applications de données d’apprentissage machine belle et performante.

Cette interface consiste en collectant les réponses de l’utilisateur au


formulaire déjà mentionné et en fonction desquelles recommander une
filière universitaire, la décrire et proposer des universités les mieux
réputées en Tunisie dans chaque domaine.

Figure 11 : Interface Web sur Heroku et résultat de réponses au


formulaire pour la filière Lettres et Langues

11
2. Déploiement de l’application Web :

Et enfin, on a déployé cette interface graphique sur la plateforme Cloud


Heroku pour la rendre accessible depuis internet et partager ainsi
l’intérêt avec des élèves encore hésitants quant à leur futur universitaire
et qui pourra ainsi en toute gratuité passer un test psychotechnique les
aidant à mieux cerner leurs aptitudes et leurs choix.

Figure 12 : Déploiement avec succès sur Heroku

Lien Github Et du site :

https://github.com/AmineCheikhMed/P2M

https://recommandationbac.herokuapp.com/

12
Bibliographie:

https://docs.streamlit.io/en/stable/
https://en.wikipedia.org/wiki/Cross-validation_(statistics)
https://scikit-learn.org/
https://matplotlib.org/
https://seaborn.pydata.org/

13

Vous aimerez peut-être aussi