Skip to content

Comte-de-Rochefort/Projet_data_science_Catboost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modélisation de la Fréquence de Sinistres - CatBoost vs XGBoost

Projet de recherche en actuariat comparant les performances de CatBoost (Ordered Boosting) et XGBoost sur le dataset freMTPL2freq pour la tarification automobile.

Structure du Projet

Projet Catboost/
├── Import dataset.r        # Téléchargement du dataset brut
├── data_cleaning.py        # Nettoyage et préparation des données
├── hyperparam_tuning.py    # Optimisation bayésienne (Hyperopt)
├── final_benchmark.py      # Benchmark final et génération des résultats
└── README.md

Pipeline d'Exécution

1. Acquisition des Données

# Import dataset.r
source("Import dataset.r")

Télécharge le dataset freMTPL2freq depuis le package R CASdatasets.

2. Nettoyage des Données

python data_cleaning.py

Applique les règles de nettoyage actuarielles :

  • Filtrage : Exposure >= 0.01
  • Clipping : ClaimNb [0,3], DrivAge [18,90], VehAge [0,20], BonusMalus [50,150]
  • Transformations : LogDensity, LogExposure (offset Poisson)
  • Split 80/20 Train/Test

Sorties : train_freMTPL2freq.csv, test_freMTPL2freq.csv

3. Optimisation des Hyperparamètres (facultative)

python hyperparam_tuning.py

Recherche bayésienne (TPE) avec validation croisée 5-Fold :

  • CatBoost : Ordered Boosting + Target Statistics
  • XGBoost OHE : One-Hot Encoding
  • XGBoost TE : Target Encoding (K-Fold anti-fuite)

Configuration : 30 évaluations par modèle.

note :ce modèle prend du temps pour tourner, les resultats sont déja reportées dans fianl_banchmark.py, vous pouvez le relancer si vous le souhaitez mais il faudra prévoir quelques heures de calcul.

4. Benchmark Final

python final_benchmark.py

Entraîne les modèles avec les hyperparamètres optimaux et génère :

  • Métriques : Déviance de Poisson, Gini Normalisé, Prediction Shift
  • Graphiques : Courbe de Lorenz, SHAP Summary, Permutation Importance

Résultats

Modèle CV Deviance Hyperparamètres
XGBoost TE 0.23820 lr=0.125, depth=4, λ=9.93
CatBoost 0.23825 lr=0.202, depth=6, L2=6.87
XGBoost OHE 0.23829 lr=0.060, depth=6, λ=6.97

Importance des Variables (Permutation)

  1. BonusMalus (0.026)
  2. DrivAge (0.004)
  3. VehAge (0.002)
  4. Density (0.001)

Dépendances

catboost>=1.2
xgboost>=2.0
scikit-learn>=1.3
hyperopt>=0.2
shap>=0.44
category_encoders>=2.6
pandas>=2.0
numpy>=1.24
matplotlib>=3.7

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors