Ce depot contient le POC Data Science demande par Academy pour orienter une strategie d'expansion internationale sur le segment secondaire et tertiaire, en s'appuyant sur les donnees EdStats de la Banque mondiale.
Le contexte fonctionnel est decrit dans documentation/academy.pdf et la logique implementee dans le notebook principal et le module Python reutilisable.
Question du commanditaire : dans quels pays Academy a le meilleur potentiel client pour des formations en ligne de niveau lycee et universite.
Objectif analytique : construire un pipeline clair et reproductible qui permet de filtrer les pays pertinents, selectionner les indicateurs utiles, puis produire un score composite pour prioriser les pays.
Academy/
|-- data/
| |-- EdStatsCountry.csv
| |-- EdStatsCountry-Series.csv
| |-- EdStatsData.csv
| |-- EdStatsFootNote.csv
| |-- EdStatsSeries.csv
| `-- indicateurs_retenus_secondary_tertiary.csv
|-- documentation/
| `-- academy.pdf
|-- notebooks/
| |-- exploration_education_mondiale.ipynb
| `-- main.ipynb
|-- src/
| `-- academy/
| |-- __init__.py
| `-- data_utils.py
|-- tests/
| |-- __init__.py
| `-- test_data_utils.py
|-- .gitignore
|-- pyproject.toml
`-- README.md
Notes Git:
- tout le dossier docus/ est ignore
- documentation/etude-exporateoire-pour-academy.pptx est ignore
- Cloner le projet
git clone https://github.com/PascalDuval/Academy.git
cd Academy- Installer Poetry (si non installe)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -- Installer les dependances
poetry install- Lancer le notebook
poetry run jupyter notebookOuvrir ensuite notebooks/exploration_education_mondiale.ipynb.
Executer les tests unitaires:
poetry run pytestCouverture:
poetry run pytest --cov=src/academy --cov-report=term-missingLe module src/academy/data_utils.py centralise les fonctions coeur:
- chargement et validation des fichiers EdStats
- nettoyage de base (doublons, colonnes vides)
- filtrage des vrais pays via Region + ISO 3166 alpha-3
- filtrage des indicateurs par mots-cles metier
- filtrage par completude temporelle
- detection de correlations fortes entre indicateurs
- selection gloutonne des indicateurs representatifs
- calcul d'un score composite par Z-scores
Le notebook applique ces briques au cas Academy, visualise les resultats et documente les choix d'analyse.
- pandas + numpy: manipulation tabulaire et calcul numerique robustes
- pycountry: validation des codes pays ISO
- pytest: tests unitaires des fonctions metier
- layout src/: imports explicites et packaging propre
- approche modulaire notebook + module: exploratoire et reutilisable
- Nettoyage brut des jeux de donnees
- Exclusion des agregats non pays
- Filtrage des indicateurs secondary/tertiary
- Reduction selon completude des annees/indicateurs
- Construction d'une table pays x indicateurs
- Suppression des redondances via correlation
- Score composite normalise (Z-score moyen) et ranking
- Approche exploratoire, pas de modele predictif de conversion commerciale
- Score non pondere: tous les indicateurs contribuent de facon uniforme
- Sensibilite aux donnees manquantes selon pays et annees
- Dependance a la qualite des sources EdStats
- Peu d'informations exogenes (concurrence locale, reglementation, cout client)
Pascal Duval