Rapport Stage
Rapport Stage
Tuteur (s) :
Encadrant Professionnel : Mr MOUSSAOUI Othman
Encadrant Pédagogique : Pr. Rachid AIT DAOUD
Mes remerciements s'adressent tout d'abord à mon encadrant chez AI Crafters, qui m'a
accordé sa confiance et m'a guidé tout au long de ce stage avec patience et expertise. Son
accompagnement m'a permis d'acquérir des compétences solides en Python et en Machine
Learning.
Je remercie également toute l'équipe d'AI Crafters pour leur accueil chaleureux et leur
disponibilité. Leur collaboration m'a permis de m'intégrer rapidement et de contribuer
efficacement aux projets de l'entreprise.
Enfin, je remercie mon établissement et Pr. Rachid AIT DAOUD pour m'avoir donné
l'opportunité de réaliser ce stage et pour leur suivi tout au long de cette expérience.
Page | 2
Table de matieres
RAPPORT DE STAGE .......................................................................................................... 2
Stage en Data Science et Machine Learning ............................................................................. 2
REMERCIEMENTS .............................................................................................................. 2
INTRODUCTION GÉNÉRALE ........................................................................................... 6
PARTIE I : PRÉSENTATION DE L'ENTREPRISE ......................................................... 6
Chapitre 1 : AI Crafters - Vue d'ensemble ................................................................................ 6
1.1 Histoire et création .......................................................................................................... 6
1.2 Mission et valeurs ........................................................................................................... 6
1.3 Vision stratégique ........................................................................................................... 7
1.4 Structure organisationnelle ............................................................................................. 7
Chapitre 2 : Domaine d'activité et positionnement ................................................................... 7
2.1 Secteur d'activité ............................................................................................................. 7
2.2 Produits et services.......................................................................................................... 7
2.3 Positionnement concurrentiel.......................................................................................... 8
2.4 Clientèle et marchés ........................................................................................................ 8
Chapitre 3 : Organisation et équipe........................................................................................... 8
3.1 Structure des équipes ...................................................................................................... 8
3.2 Culture d'entreprise ......................................................................................................... 9
3.3 Mon intégration dans l'équipe ......................................................................................... 9
PARTIE II : CONTEXTE ET OBJECTIFS DU STAGE ................................................... 9
Chapitre 1 : Missions confiées .................................................................................................. 9
1.1 Description générale des missions .................................................................................. 9
1.2 Détail des missions principales ....................................................................................... 9
1.3 Planning et organisation ................................................................................................ 10
Chapitre 2 : Objectifs d'apprentissage..................................................................................... 10
2.1 Objectifs techniques ...................................................................................................... 10
2.2 Objectifs professionnels ................................................................................................ 11
2.3 Objectifs personnels ...................................................................................................... 11
Chapitre 3 : Méthodologie de travail ...................................................................................... 11
3.1 Approche pédagogique ................................................................................................. 11
3.2 Outils et environnement de travail ................................................................................ 12
3.3 Suivi et évaluation......................................................................................................... 12
Chapitre 1 : Fondamentaux de Python .................................................................................... 12
1.1 Introduction à Python .................................................................................................... 12
1.2 Structures de données fondamentales ........................................................................... 13
Page | 3
1.3 Programmation fonctionnelle et orientée objet ............................................................. 13
1.4 Gestion des erreurs et bonnes pratiques ........................................................................ 13
Chapitre 2 : La librairie NumPy .............................................................................................. 13
2.1 Introduction à NumPy ................................................................................................... 13
2.2 Arrays NumPy............................................................................................................... 14
2.3 Opérations mathématiques ............................................................................................ 14
2.4 Applications pratiques................................................................................................... 14
Chapitre 3 : La librairie Pandas............................................................................................... 15
3.1 DataFrames et Series..................................................................................................... 15
3.2 Manipulation de données .............................................................................................. 15
3.3 Nettoyage de données ................................................................................................... 15
3.4 Analyse exploratoire ..................................................................................................... 16
Chapitre 4 : Matplotlib pour la visualisation .......................................................................... 16
4.1 Principes de la visualisation de données ....................................................................... 16
4.2 Types de graphiques maîtrisés ...................................................................................... 16
4.3 Personnalisation et style ................................................................................................ 16
4.4 Integration avec Pandas ................................................................................................ 17
Chapitre 1 : Introduction à Scikit-learn................................................................................... 17
1.1 Vue d'ensemble de Scikit-learn..................................................................................... 17
1.2 Structure et workflow.................................................................................................... 17
1.3 Preprocessing et feature engineering ............................................................................ 18
Chapitre 2 : Apprentissage supervisé ...................................................................................... 18
2.1 Classification................................................................................................................. 18
2.2 Régression ..................................................................................................................... 19
2.3 Métriques d'évaluation .................................................................................................. 19
2.4 Validation et généralisation .......................................................................................... 20
Chapitre 3 : Apprentissage non supervisé ............................................................................... 20
3.1 Clustering ...................................................................................................................... 20
3.2 Réduction de dimensionnalité ....................................................................................... 21
3.3 Métriques pour le non-supervisé ................................................................................... 21
3.4 Applications pratiques................................................................................................... 21
Chapitre 4 : Applications pratiques sur datasets réels............................................................. 22
4.1 Le dataset Titanic .......................................................................................................... 22
4.2 Datasets Scikit-learn ..................................................................................................... 23
4.3 Projets personnels développés ...................................................................................... 23
4.4 Leçons apprises ............................................................................................................. 23
Chapitre 1 : Tests et documentation ........................................................................................ 24
Page | 4
1.1 Contexte et importance des tests ................................................................................... 24
1.2 Types de tests effectués................................................................................................. 24
1.3 Documentation des bugs ............................................................................................... 24
1.4 Amélioration de la documentation ................................................................................ 25
1.5 Impact et apprentissages ............................................................................................... 25
Chapitre 2 : Création de quiz pour ADWIN COURSE .......................................................... 25
2.1 Présentation d'ADWIN COURSE................................................................................. 25
2.2 Conception pédagogique des quiz................................................................................. 25
2.3 Exemples de quiz créés ................................................................................................. 26
2.4 Méthodologie de création.............................................................................................. 26
2.5 Intégration et feedback .................................................................................................. 27
Chapitre 3 : Développement du blog de formation ................................................................. 27
3.1 Objectif et vision du blog .............................................................................................. 27
3.2 Structure et contenu du blog ......................................................................................... 27
3.3 Approche pédagogique ................................................................................................. 28
3.4 Contenu technique développé ....................................................................................... 28
3.5 Aspects techniques du blog ........................................................................................... 29
3.6 Impact et évolution........................................................................................................ 29
PARTIE VI : BILAN ET PERSPECTIVES....................................................................... 29
Chapitre 1 : Compétences acquises......................................................................................... 30
1.1 Compétences techniques ............................................................................................... 30
1.2 Compétences méthodologiques..................................................................................... 30
1.3 Compétences transversales ........................................................................................... 31
1.4 Évolution personnelle ................................................................................................... 31
Chapitre 2 : Difficultés rencontrées et solutions ..................................................................... 32
2.1 Défis techniques ............................................................................................................ 32
2.2 Défis conceptuels .......................................................................................................... 32
2.3 Défis organisationnels ................................................................................................... 33
2.4 Défis relationnels .......................................................................................................... 33
2.5 Leçons tirées ................................................................................................................. 33
Chapitre 3 : Perspectives professionnelles .............................................................................. 33
3.1 Orientation de carrière .................................................................................................. 33
3.2 Plan de développement ................................................................................................. 34
3.3 Réseau professionnel..................................................................................................... 35
3.4 Contribution à la communauté ...................................................................................... 35
3.5 Vision personnelle......................................................................................................... 35
CONCLUSION GÉNÉRALE .............................................................................................. 35
Page | 5
INTRODUCTION GÉNÉRALE
Dans le cadre de ma formation en Genie informatique j'ai eu l'opportunité d'effectuer un stage
de deux mois au sein de l'entreprise AI Crafters qui n’est pas encore terminé, spécialisée dans
l'intelligence artificielle et le développement de solutions data-driven. Ce stage, débuté le 5
mai 2025, représente une étape cruciale dans mon parcours académique et professionnel.
Ce stage m'a offert l'occasion unique de plonger dans l'univers de la data science et du
machine learning, en acquérant des compétences pratiques en programmation Python et en
explorant les principales bibliothèques utilisées dans ce domaine. Au-delà de l'apprentissage
technique, j'ai pu contribuer activement aux projets de l'entreprise, notamment en participant
aux tests, à la documentation et à la création de contenus pédagogiques.
Ce rapport présente de manière détaillée mon expérience au sein d'AI Crafters. Il s'articule
autour de six parties principales : la présentation de l'entreprise, le contexte et les objectifs du
stage, mon apprentissage du langage Python et de ses bibliothèques essentielles, mon
initiation au machine learning avec Scikit-learn, mes contributions concrètes aux projets de
l'entreprise, et enfin un bilan complet des compétences acquises et des perspectives futures.
À travers ce document, je souhaite non seulement rendre compte de mon parcours et de mes
réalisations, mais aussi démontrer comment cette expérience a enrichi ma compréhension du
domaine de la data science et renforcé ma motivation à poursuivre une carrière dans ce
secteur passionnant.
La mission principale d'AI Crafters est de créer des solutions intelligentes qui transforment la
façon dont les entreprises interagissent avec leurs données. L'entreprise s'appuie sur des
valeurs fondamentales telles que l'innovation, l'excellence technique, la collaboration et le
partage de connaissances.
Page | 6
• L'innovation continue : Recherche constante de nouvelles approches et technologies
• L'excellence technique : Engagement envers la qualité et la performance des solutions
développées
• La collaboration : Travail d'équipe et partage des connaissances au sein de l'organisation
• La formation : Investissement dans le développement des compétences, notamment à travers
des programmes comme ADWIN COURSE
L'entreprise adopte une structure agile favorisant la flexibilité et l'innovation. Les équipes sont
organisées en mode projet, permettant une collaboration étroite entre les différents
départements : développement, data science, qualité et formation.
Solutions logicielles :
Services professionnels :
Page | 7
• Support technique et maintenance
L'entreprise s'adresse à une clientèle variée, allant des startups aux grandes entreprises, dans
différents secteurs :
• Finance et banque
• Santé et pharmaceutique
• E-commerce et retail
• Industrie manufacturière
• Services publics
Département Développement :
Département Qualité :
Département Formation :
Page | 8
• Animation de formations
• Création de contenus éducatifs
En tant que stagiaire, j'ai été accueilli chaleureusement et intégré rapidement dans l'équipe.
Mon encadrant m'a présenté les différents membres de l'équipe et expliqué le fonctionnement
de l'entreprise. J'ai principalement travaillé avec :
Cette organisation m'a permis d'avoir une vision globale de l'entreprise et de comprendre
comment les différents départements collaborent pour créer des solutions innovantes.
Mon stage chez AI Crafters s'articule autour de plusieurs missions complémentaires visant à
développer mes compétences en data science tout en contribuant aux projets de l'entreprise :
Cette mission fondamentale constitue la base de toutes mes autres activités. Elle comprend :
Page | 9
• L'application pratique sur des datasets réels
Cette mission vise à me familiariser avec les concepts et techniques du machine learning :
Cette mission pratique m'a permis de contribuer directement aux activités de l'entreprise :
• Tests et documentation
• Création de contenus pédagogiques
• Développement du blog de formation
Page | 10
Programmation Python :
Data Science :
Machine Learning :
Learning by doing :
Page | 11
Apprentissage itératif :
Environnement de développement :
Ressources d'apprentissage :
Cette méthodologie m'a permis de progresser rapidement tout en maintenant une haute qualité
dans mes réalisations.
Python s'est imposé comme le langage de référence en data science grâce à sa syntaxe claire,
sa polyvalence et son écosystème riche en bibliothèques. Mon apprentissage a débuté par la
compréhension des raisons qui font de Python un choix optimal pour l'analyse de données et
le machine learning.
Page | 12
• Communauté active : Support et ressources abondantes
Listes : Les listes sont des séquences ordonnées et modifiables. J'ai appris à les manipuler
efficacement pour stocker et traiter des collections de données. Les opérations comme l'ajout,
la suppression, le tri et la compréhension de liste sont devenues des outils quotidiens dans
mon travail.
Tuples et Sets : J'ai découvert l'utilité des tuples pour les données immuables et des sets pour
les opérations ensemblistes, particulièrement utiles dans le traitement de données uniques et
les comparaisons.
Programmation fonctionnelle : J'ai appris à utiliser les fonctions comme des objets de
première classe, en exploitant les fonctions lambda, map, filter et reduce. Cette approche s'est
révélée particulièrement efficace pour le traitement de données en pipeline.
J'ai également adopté les conventions PEP 8 pour maintenir un code propre et lisible,
facilitant la collaboration avec l'équipe.
Page | 13
NumPy (Numerical Python) constitue la fondation du calcul scientifique en Python. Cette
bibliothèque m'a ouvert les portes du calcul numérique efficace grâce à ses arrays
multidimensionnels et ses fonctions mathématiques optimisées.
Indexation avancée : L'indexation NumPy offre une puissance remarquable. J'ai maîtrisé :
• Le slicing multidimensionnel
• L'indexation booléenne pour le filtrage
• L'indexation fancy pour la sélection complexe
• Les vues vs copies pour l'optimisation mémoire
Algèbre linéaire : Les opérations matricielles sont essentielles en machine learning. J'ai
pratiqué :
Calculs statistiques : Utilisation des fonctions mean, std, percentile pour l'analyse
exploratoire des données.
Page | 14
Chapitre 3 : La librairie Pandas
3.1 DataFrames et Series
Sélection et filtrage :
Transformation :
Une grande partie de mon travail a consisté à nettoyer des données réelles :
Détection d'anomalies :
Page | 15
• Correction des incohérences
Agrégations complexes : Maîtrise des opérations groupby pour créer des insights
sophistiqués, avec des agrégations multiples et des transformations conditionnelles.
Matplotlib m'a permis de transformer des données brutes en visualisations informatives. J'ai
appris l'importance de choisir le bon type de graphique selon le message à transmettre et le
type de données.
Graphiques de base :
Graphiques avancés :
Personnalisation esthétique :
Bonnes pratiques :
Page | 16
• Maximiser le ratio data-ink
• Choisir des échelles appropriées
• Assurer l'accessibilité (couleurs pour daltoniens)
Cette maîtrise des outils de visualisation m'a permis de communiquer efficacement mes
analyses et de créer des rapports visuellement attractifs pour les différents projets de
l'entreprise.
Scikit-learn s'est révélé être une bibliothèque extraordinairement bien conçue pour
l'apprentissage automatique. Sa philosophie de design cohérente et son API unifiée m'ont
permis de progresser rapidement dans la compréhension et l'implémentation d'algorithmes
complexes.
• Consistance : Tous les estimateurs partagent une interface commune (fit, predict, transform)
• Inspection : Accès transparent aux paramètres et attributs des modèles
• Composition : Facilité de créer des pipelines complexes
• Sensibilité aux défauts : Validation rigoureuse des entrées
J'ai adopté un workflow structuré pour tous mes projets de machine learning :
2. Entraînement du modèle :
Page | 17
• Fit sur les données d'entraînement
• Évaluation des performances
3. Optimisation :
La préparation des données représente souvent 80% du travail en machine learning. J'ai
maîtrisé plusieurs techniques essentielles :
Standardisation et normalisation :
La classification a été mon premier contact approfondi avec le machine learning supervisé.
J'ai exploré plusieurs algorithmes, chacun avec ses forces et ses cas d'usage :
Régression logistique : Malgré son nom, cet algorithme de classification m'a servi de base
pour comprendre :
Page | 18
Arbres de décision : Les arbres m'ont fasciné par leur interprétabilité :
Support Vector Machines : Les SVM m'ont introduit aux concepts avancés :
• Maximisation de la marge
• Kernel trick pour la non-linéarité
• Choix du kernel (RBF, polynomial, linéaire)
• Sensibilité aux hyperparamètres C et gamma
2.2 Régression
Régression linéaire :
Régression polynomiale :
Pour la classification :
Page | 19
• Accuracy : Simple mais peut être trompeuse
• Precision/Recall : Essentiels pour les classes déséquilibrées
• F1-Score : Harmonie entre precision et recall
• ROC-AUC : Évaluation globale du classifieur
• Confusion Matrix : Vue détaillée des erreurs
Pour la régression :
Train/Test Split :
• Importance de la randomisation
• Stratification pour les classes déséquilibrées
• Taille optimale des ensembles
• Risques de data leakage
Cross-Validation :
Page | 20
• Paramètres eps et min_samples
• Gestion automatique des outliers
• Clusters de forme arbitraire
• Pas besoin de spécifier k
t-SNE :
Métriques internes :
Validation visuelle :
Page | 21
Segmentation client :
Détection d'anomalies :
Compression de données :
Le dataset Titanic a été mon premier projet complet de machine learning, me permettant
d'appliquer l'ensemble de mes connaissances :
Modélisation et optimisation :
Résultats et insights :
Page | 22
4.2 Datasets Scikit-learn
J'ai exploré plusieurs datasets fournis par Scikit-learn pour approfondir différents aspects :
Iris Dataset :
Wine Dataset :
California Housing :
La validation rigoureuse : Les métriques sur le train set ne signifient rien sans validation
appropriée.
Page | 23
L'itération constante : Les meilleurs modèles résultent de multiples cycles d'amélioration.
Ma participation aux activités de test et de documentation m'a fait comprendre leur rôle
crucial dans le développement de solutions IA robustes. Dans un domaine où les erreurs
peuvent avoir des conséquences importantes, la qualité et la fiabilité sont primordiales.
Tests unitaires : J'ai contribué à l'écriture de tests unitaires pour les modules de preprocessing
et de feature engineering :
Tests de régression : J'ai participé à la mise en place de tests garantissant que les nouvelles
modifications ne cassent pas les fonctionnalités existantes :
Page | 24
• Étapes de reproduction détaillées
• Environnement et configuration
• Comportement attendu vs observé
• Captures d'écran ou logs pertinents
• Proposition de solutions quand possible
Documentation utilisateur :
Page | 25
• Les compétences pratiques à évaluer
• Les erreurs communes à éviter
• Les prérequis nécessaires
Processus de développement :
Critères de qualité :
Page | 26
• Couverture complète du syllabus
Intégration technique :
Retours des utilisateurs : Les premiers retours ont été très positifs :
• Appréciation de la progressivité
• Valeur des explications détaillées
• Pertinence des cas pratiques
• Demande pour plus de contenu avancé
• Design pédagogique
• Communication claire de concepts complexes
• Évaluation des compétences
• Création de contenu éducatif engageant
Mon encadrant m'a confié la mission de créer un blog documentant mon parcours
d'apprentissage. L'objectif : créer une ressource permettant aux futurs stagiaires d'acquérir en
autonomie les compétences que j'ai développées durant mon stage.
Vision du projet :
1. Getting Started
o Installation de l'environnement Python
o Configuration des outils de développement
o Premiers pas avec Jupyter Notebooks
o Ressources essentielles
2. Python Foundations
o Syntaxe et concepts de base
Page | 27
o Structures de données expliquées
o Exercices pratiques progressifs
o Projets mini pour consolider
3. Data Science Toolkit
o NumPy : du débutant à avancé
o Pandas : manipulation de données réelles
o Matplotlib : visualisation efficace
o Intégration des trois librairies
4. Machine Learning Journey
o Concepts fondamentaux illustrés
o Scikit-learn pas à pas
o Projets guidés complets
o Pièges courants et solutions
Principes directeurs :
Page | 28
"Les 10 erreurs que j'ai faites (pour que vous ne les fassiez pas)" :
Stack technologique :
Fonctionnalités implémentées :
Métriques de succès :
Évolutions prévues :
Page | 29
Chapitre 1 : Compétences acquises
1.1 Compétences techniques
Mon stage chez AI Crafters m'a permis de développer un ensemble solide de compétences
techniques :
Outils et environnement :
Au-delà des aspects techniques, j'ai acquis des compétences méthodologiques essentielles :
Approche projet :
Résolution de problèmes :
Page | 30
• Analyse systématique des erreurs
• Recherche efficace de solutions
• Thinking outside the box
• Validation rigoureuse
• Apprentissage par l'échec
Qualité et rigueur :
• Tests systématiques
• Code review et amélioration continue
• Documentation claire et maintenue
• Respect des standards
• Attention aux détails
Communication :
Travail en équipe :
Apprentissage continu :
Page | 31
• Mentorer d'autres débutants
Mindset professionnel :
• Orientation résultats
• Souci de la qualité
• Respect des deadlines
• Proactivité
• Éthique professionnelle
Solution : J'ai adopté une approche séquentielle, maîtrisant d'abord Python pur avant d'ajouter
progressivement les bibliothèques. La pratique quotidienne avec des mini-projets a solidifié
les concepts.
Difficulté : Les erreurs dans les pipelines de machine learning étaient parfois difficiles à
tracer.
Solution : J'ai appris à utiliser les outils de debugging (pdb), à ajouter des logs stratégiques, et
à décomposer les problèmes en parties plus petites et testables.
Performance et optimisation :
Difficulté : Savoir quel algorithme utiliser pour quel problème n'était pas évident.
Page | 32
Solution : Création d'un decision tree personnel, expérimentation systématique, et analyse des
trade-offs de chaque approche.
Gestion du temps :
Documentation vs développement :
Difficulté : Timidité initiale pour poser des questions ou contribuer aux discussions.
Communication technique :
Page | 33
Ce stage a cristallisé ma passion pour la data science et confirmé mon désir de poursuivre
dans cette voie. Les perspectives qui s'offrent à moi sont multiples et excitantes.
Compétences à approfondir :
Techniques :
Méthodologiques :
• Architecture de systèmes ML
• Gestion de projets data science
• Éthique de l'IA
• Business intelligence
• Communication de résultats
Formations envisagées :
Page | 34
• Spécialisation Coursera en Deep Learning
• Participation à des compétitions Kaggle
• Contributions open source
• Éventuellement un Master spécialisé
CONCLUSION GÉNÉRALE
Au terme de ce stage de deux mois chez AI Crafters, je mesure le chemin parcouru depuis
mes premiers pas hésitants en Python jusqu'à ma capacité actuelle à développer des solutions
de machine learning complètes. Cette expérience a dépassé mes attentes initiales, tant sur le
plan technique que personnel.
Page | 35