Ce dépôt propose une solution structurée et modulaire pour résoudre le problème classique de prédiction de survie des passagers du Titanic. Le projet met en œuvre les meilleures pratiques d’ingénierie logicielle tout en exploitant l’apprentissage automatique pour prédire la survie des passagers en fonction de caractéristiques telles que l’âge, le genre et la classe de billet.
L’objectif de ce projet est de refactoriser un notebook existant sur la prédiction de survie du Titanic en un code Python prêt pour la production. Les points clés incluent :
- Scripts Python modulaires.
- Conformité au style PEP 8.
- Tests unitaires pour les fonctions principales.
- Prétraitement des données.
- Entraînement et évaluation des modèles prédictifs.
- Utilisation de Git et GitHub pour le contrôle de version.
- Configuration de workflows automatisés avec GitHub Actions pour le linting, les tests et le déploiement.
Ce projet respecte les exigences académiques de l'IUT Paris Cité, avec un accent sur le travail en équipe, la modularité et la maintenabilité.
git clone https://github.com/votre-repo/titanic-survival-prediction.git
cd titanic-survival-predictionAssurez-vous d’avoir Python 3.8+ installé. Installez les librairies nécessaires :**
pip install -r requirements.txtLancez les scripts dans l’ordre suivant :
Prétraitement des données :
python src/data_preprocessing.pyEntraînement des modèles :
python src/model_training.pyEvaluation des modèles :
python src/model_evaluation.py| Model | Accuracy | F1-Score |
|---|---|---|
| Logistic Regression | 80.45% | 0.80 |
| RandomForest | 82.68% | 0.83 |
| MultiLayer Perceptron | 82.12% | 0.82 |
| XGBoost | 82.12% | 0.82 |
| Stacked Model | 81.01%% | 0.80 |
Techniques utilisées pour interpréter les modèles :
- Valeurs SHAP : Analyse de l’impact des caractéristiques sur les prédictions.
- Importances des caractéristiques : Mise en évidence des variables les plus significatives.
- Permutation Importance : Évaluation de la pertinence des variables par permutation.
Le dépôt intègre des workflows GitHub Actions pour :
- Linting : Vérifie la qualité du code avec Flake8 et Black.
- Tests : Exécute les tests unitaires via Pytest.
- Simulation de déploiement : Containerisation optionnelle avec Docker.
- Intégration de méthodes avancées d’ensembles pour de meilleures performances.
- Enrichissement des caractéristiques avec des données externes.
- Déploiement du modèle en tant qu’API avec Flask ou FastAPI.
Contributions bienvenues ! Pour participer :
- Forkez le dépôt.
- Créez une branche pour vos modifications.
- Soumettez une pull request pour révision.
79.186 %
Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.