.. _part3: ************************************************************************************************* Partie 3 | Projet d'analyse de données ************************************************************************************************* Objectifs ========= À l'issue de ce module, chaque étudiant.e sera capable de : * Formuler des questions de recherche pertinentes à partir d'un jeu de données * Appliquer une méthodologie complète d'analyse exploratoire de données * Intégrer toutes les compétences acquises (manipulation, analyse, visualisation) * Développer du code Python et R fonctionnel, structuré et documenté * Présenter les résultats d'analyse de manière professionnelle * Rendre un code propre et exécutable au professeur Introduction ======================================= Le projet final constitue la synthèse de tous les modules précédents. Il s'agit d'une opportunité de démontrer votre maîtrise des langages Python et R dans un contexte d'analyse de données réelles. Description du projet ======================================= Méthodologie d'analyse exploratoire """""""""""""""""""""""""""""""""""" Votre projet doit suivre les étapes suivantes : **1. Définition du contexte et des objectifs (10%)** - Présenter le jeu de données choisi (source, description, contexte) - Formuler 3 à 5 questions de recherche claires et pertinentes - Justifier l'intérêt de ces questions - Définir les objectifs de l'analyse **2. Import et exploration initiale (10%)** En Python ET en R : - Importer les données (CSV, Excel, JSON) - Afficher les dimensions, types de données, aperçu - Identifier les variables (catégorielles, numériques, temporelles) - Détecter les problèmes potentiels (valeurs manquantes, incohérences) **3. Nettoyage et préparation des données (20%)** - Traiter les valeurs manquantes - Identifier et gérer les valeurs aberrantes - Supprimer les doublons si nécessaire - Corriger les incohérences - Créer de nouvelles variables si pertinent - Normaliser ou standardiser si nécessaire **4. Analyse exploratoire approfondie (25%)** **Statistiques descriptives :** - Calculer les mesures de tendance centrale (moyenne, médiane, mode) - Calculer les mesures de dispersion (écart-type, variance, IQR) - Analyser les distributions des variables - Calculer les corrélations entre variables **Analyse par groupes :** - Segmenter les données selon des critères pertinents - Comparer les statistiques entre groupes - Identifier les différences significatives **Détection de patterns :** - Identifier des tendances temporelles (si applicable) - Détecter des clusters ou groupements naturels - Analyser les relations non-linéaires **5. Visualisations (25%)** Créer au minimum 6 visualisations pertinentes et professionnelles : - Au moins 2 graphiques pour montrer des distributions - Au moins 2 graphiques pour montrer des relations/corrélations - Au moins 2 graphiques pour comparer des groupes - Tous les graphiques doivent être : * Personnalisés (titres, labels, couleurs appropriées) * Lisibles et esthétiques * Directement liés aux questions de recherche * Accompagnés d'interprétations **6. Synthèse et conclusions (10%)** - Répondre à chaque question de recherche formulée - Présenter les insights principaux découverts - Discuter des limitations de l'analyse - Proposer des pistes d'amélioration ou d'analyse future Choix du jeu de données ======================================= **Option 1 : Datasets proposés** Le professeur peut proposer une liste de datasets. **Option 2 : Dataset personnel** Vous pouvez choisir votre propre dataset. Livrables du projet ======================================= Vous devez rendre les éléments suivants : **1. Code Python (30%)** Fichier : ``projet_python.py`` ou ``projet_python.ipynb`` (Jupyter Notebook) Contenu : - Import des bibliothèques nécessaires - Import et exploration des données - Nettoyage et préparation - Analyses statistiques - Visualisations - Commentaires détaillés expliquant chaque étape - Code structuré en sections claires - Utilisation de fonctions pour le code répétitif **2. Code R (30%)** Fichier : ``projet_r.R`` ou ``projet_r.Rmd`` (R Markdown) Contenu identique au code Python mais en R : - Utilisation de tidyverse (dplyr, ggplot2, tidyr) - Structure similaire avec sections commentées - Mêmes analyses et visualisations - Documentation claire **3. Fichier README (10%)** Fichier : ``README.md`` ou ``README.txt`` Contenu : - Titre du projet - Description du dataset (source, nombre de lignes/colonnes) - Questions de recherche - Instructions pour exécuter le code Python - Instructions pour exécuter le code R - Liste des bibliothèques/packages nécessaires - Résumé des principaux résultats (3-5 points clés) - Auteur et date **4. Données (10%)** Fichier : ``data.csv`` (ou autre format) - Le fichier de données utilisé doit être fourni - Si le dataset est trop volumineux (>50 MB), fournir un lien de téléchargement - Documenter la source et la licence d'utilisation Critères d'évaluation détaillés ======================================= Le projet est noté sur 30% de la note finale selon la grille suivante : **Code Python (30% du projet = 9% de la note finale)** .. list-table:: :header-rows: 1 :widths: 30 15 15 20 20 * - Critère - Inacceptable [0-1,25[ - Insuffisant [1,25-2,5[ - Correct [2,5-3,75[ - Excellent [3,75-5] * - **Fonctionnalité** - Code non exécutable ou avec erreurs majeures - Code partiellement fonctionnel avec plusieurs erreurs - Code fonctionnel avec quelques erreurs mineures - Code parfaitement fonctionnel, bien structuré * - **Structures de données** - Utilisation incorrecte ou absente - Utilisation basique avec erreurs - Utilisation correcte des structures appropriées - Utilisation optimale et avancée des structures **Code R (30% du projet = 9% de la note finale)** .. list-table:: :header-rows: 1 :widths: 30 15 15 20 20 * - Critère - Inacceptable [0-1,25[ - Insuffisant [1,25-2,5[ - Correct [2,5-3,75[ - Excellent [3,75-5] * - **Fonctionnalité** - Code non exécutable ou avec erreurs majeures - Code partiellement fonctionnel avec plusieurs erreurs - Code fonctionnel avec quelques erreurs mineures - Code parfaitement fonctionnel, bien structuré * - **Objets R** - Utilisation incorrecte ou absente - Utilisation basique avec erreurs - Objets R utilisés correctement - Utilisation optimale et avancée des objets R **Analyse exploratoire (20% du projet = 6% de la note finale)** .. list-table:: :header-rows: 1 :widths: 30 15 15 20 20 * - Critère - Inacceptable [0-1,25[ - Insuffisant [1,25-2,5[ - Correct [2,5-3,75[ - Excellent [3,75-5] * - **Profondeur** - Analyse absente ou très superficielle - Analyse présente mais incomplète - Analyse correcte couvrant les aspects essentiels - Analyse complète et approfondie avec insights pertinents **Visualisations (20% du projet = 6% de la note finale)** .. list-table:: :header-rows: 1 :widths: 30 15 15 20 20 * - Critère - Inacceptable [0-1,25[ - Insuffisant [1,25-2,5[ - Correct [2,5-3,75[ - Excellent [3,75-5] * - **Qualité** - Graphiques absents ou non pertinents - Graphiques présents mais mal configurés - Graphiques corrects et informatifs - Graphiques excellents, esthétiques et très informatifs Calendrier et modalités ======================================= **Dates importantes** - **Deadline** : [Date précise fournie par l'enseignant] **Modalités de rendu** - Format : Archive ZIP nommée ``Nom_Prenom_Projet.zip`` - Contenu de l'archive : * ``projet_python.ipynb`` ou ``projet_python.py`` * ``projet_r.R`` ou ``projet_r.Rmd`` * ``README.md`` * ``data.csv`` (ou lien dans README) * ``requirements.txt`` (Python) - optionnel mais recommandé - Mode de soumission : [Plateforme indiquée par l'enseignant] - Retard : Pénalité de [X]% par jour de retard **Travail individuel** - Le projet est strictement individuel - Tout plagiat sera sanctionné - Vous pouvez utiliser des ressources en ligne mais devez citer vos sources - Le code doit être votre propre travail Conseils et bonnes pratiques ======================================= **Pour réussir votre projet :** 1. **Commencez tôt** : Ne sous-estimez pas le temps nécessaire 2. **Choisissez un dataset qui vous intéresse** : La motivation est clé 3. **Posez de vraies questions** : Pas juste "montrer des stats" 4. **Documentez au fur et à mesure** : N'attendez pas la fin 5. **Testez régulièrement** : Vérifiez que tout fonctionne 6. **Demandez des retours** : Consultez le professeur en cas de doute 7. **Soignez la présentation** : Code lisible, graphiques clairs 8. **Relisez tout** : Vérifiez l'orthographe, la syntaxe, les résultats **Erreurs à éviter :** - Dataset trop simple ou trop complexe - Questions de recherche vagues ou trop larges - Code désorganisé sans commentaires - Visualisations mal configurées ou non pertinentes - Analyse superficielle sans interprétation - Oublier de tester le code avant de rendre - Ne pas fournir les données ou le README **Ressources utiles :** - Documentation des bibliothèques utilisées - Exemples de projets sur Kaggle - Tutoriels de visualisation - Forums (Stack Overflow, Reddit r/datascience) - Cours et exercices des modules précédents Conclusion ======================================= Ce projet final est l'occasion de démontrer toutes les compétences acquises durant ce cours. Prenez le temps de choisir un dataset intéressant, formulez des questions pertinentes, et menez une analyse rigoureuse et bien documentée. **Bonne chance et bon travail !** .. note:: En cas de questions ou difficultés, n'hésitez pas à consulter le professeur pendant les heures de permanence ou par email.