Réalisé Par :
Iheb Maaoui
Amine Cheikh Mohamed
Encadré Par :
Mr. Mohamed Ayadi
Bibliographie: ………………………………………………...13
1
Table de figures
Figure 1 : Dataset initial …………………………………………………4
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 :
3
II. Projet Machine Learning
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.
4
2. Traitement des données :
Pour gérer les autres valeurs manquantes, nous avons remplacé les
réponses nulles par la réponse la plus fréquente.
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.
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.
7
d. Réduction de dimension :
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 :
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.
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.
11
2. Déploiement de l’application Web :
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