Transparence du modèle
Performances et méthode
Les indicateurs viennent du jeu de test, utilisé une seule fois, et sont chargés depuis l'API : aucun n'est écrit à la main dans la page.
Chiffres indisponibles : l'API ne répond pas. Lancez-la avec docker compose up, puis rechargez la page.
Résultats sur le jeu de test
Chaque indicateur est donné avec son intervalle de confiance à 95 % (bootstrap sur le test), et comparé à la validation croisée réalisée pendant l'entraînement.
AUC-PR
—
AUC-ROC
—
Recall
—
Précision
—
Variables les plus influentes
Importance moyenne (|SHAP|) des principales variables, en part de l'importance totale. Elle est calculée en out-of-fold sur le train : chaque client est expliqué par un modèle qui ne l'a jamais vu.
- ↑Une valeur plus élevée augmente le risque
- ↓Une valeur plus élevée réduit le risque
- ↕Effet non monotone
Méthode, dans l'ordre
L'ordre compte : c'est lui qui évite les fuites de données entre l'entraînement et le test.
- DonnéesEnviron 150 000 clients du jeu Give Me Some Credit (Kaggle), dont 6,7 % ont connu un défaut grave dans les 2 ans.
- Découpage avant tout le reste80 % pour l'entraînement, 20 % pour le test, stratifié sur la cible. Le test n'est plus touché jusqu'à l'évaluation finale.
- PréparationCodes d'erreur 96 et 98 traités comme valeurs manquantes, imputation, valeurs extrêmes plafonnées, cinq variables dérivées. Toutes les statistiques sont apprises sur l'entraînement uniquement.
- ModèleLightGBM, comparé à une régression logistique, une forêt aléatoire et XGBoost. Hyperparamètres réglés par recherche aléatoire sur l'AUC-PR, en validation croisée stratifiée à 5 blocs.
- Seuil de décisionUn client est refusé si sa probabilité de défaut atteint —. Ce seuil découle d'une hypothèse de coût : accorder un crédit à un mauvais payeur coûte k = 10 fois plus que refuser un bon client.
- Évaluation uniqueLe test est utilisé une seule fois. Ses résultats sont cohérents avec la validation croisée : pas de signe de surapprentissage.
Limites à connaître
- Le seuil repose sur une hypothèse. Le rapport de coût k est illustratif ; une banque réelle utiliserait ses propres coûts, et le seuil changerait.
- Revenus en USD. Le modèle a été entraîné sur des revenus en dollars : les conversions du site ne sont qu'indicatives, et la distribution des revenus d'un autre pays peut différer.
- Pas de validation dans le temps. Le découpage entraînement/test est aléatoire, pas chronologique : une dérive des comportements n'est pas mesurée.
- Des défauts restent invisibles. Une part des défauts échappe au modèle (voir le décompte ci-dessus) : ces clients ressemblent souvent à des clients sains avec les seules variables disponibles, par exemple sans aucun retard passé.
Lire le code et le README sur GitHub →