Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Titanic : de l'exploration à une soumission robuste

J'ai réalisé ce projet pour aller au-delà du notebook Titanic classique : comparer plusieurs familles de modèles, encadrer le feature engineering par des tests et comprendre pourquoi une meilleure validation locale ne garantit pas un meilleur score Kaggle.

Mon meilleur résultat légitime est 0.78947 (330 prédictions correctes sur 418), sans utiliser la survie connue d'un membre d'une famille ou d'un ticket pour prédire celle d'un proche.

Ce que j'ai travaillé

  • exploration et nettoyage des données avec pandas ;
  • création de variables liées au titre, à la famille, au billet et au tarif ;
  • comparaison de régression logistique, Random Forest, Gradient Boosting et CatBoost ;
  • validation stratifiée, puis validation groupée par ticket ;
  • blends, ajustement de seuil et analyse des changements de prédictions ;
  • tests unitaires pour vérifier le schéma des features et l'absence de dépendance directe à la cible.

Le point le plus intéressant n'est pas seulement le score final. Mon meilleur Gradient Boosting atteignait 0.8440 en OOF, mais seulement 0.75358 sur Kaggle. Cette divergence m'a conduit à arrêter l'optimisation du leaderboard et à privilégier une conclusion reproductible et honnête.

Résultat retenu

Propriété Valeur
Fichier canonique submission_group_corrected.csv
Copie figée submission_best_078947_group.csv
Score Kaggle 0.78947
Passagers 418
Survivants prédits 162
SHA-256 de la copie figée 7C50081558C1E60FEF4D3F74D9C65EAC0F445F137BA0D651DF38B1D20FD7312F

Les deux CSV sont identiques. Les nombreuses variantes générées pendant les essais ne sont pas versionnées afin de garder le dépôt lisible ; leurs résultats sont résumés dans EXPERIMENTS.md.

Structure du projet

Installation

Avec Python 3.12 :

python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

Puis lancer les contrôles :

.venv\Scripts\python.exe -m unittest
.venv\Scripts\python.exe analyze_submissions.py
Get-FileHash .\submission_best_078947_group.csv -Algorithm SHA256

Ce que j'en retiens

Ce projet m'a surtout appris à distinguer trois sujets souvent confondus : un code correct, une validation locale convaincante et une vraie généralisation. Les tests protègent l'implémentation ; l'OOF aide à comparer les hypothèses ; mais un petit leaderboard public reste une mesure bruitée sur laquelle il est facile de sur-optimiser.

J'ai donc conservé le modèle le plus solide empiriquement, documenté les essais moins concluants et fixé un critère clair avant de relancer de nouvelles expériences : disposer d'une évaluation indépendante et d'une hypothèse sans fuite de cible.

About

Titanic Kaggle competition

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages