Risque lié aux données manquantes dans les prêts

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Qu’est-ce que des données manquantes ?

  • Des NULL à la place d’une valeur
  • Une chaîne vide ''
  • Pas une ligne entièrement vide
  • Peut survenir dans n’importe quelle colonne

Exemple de DataFrame avec durée d’emploi manquante

Modélisation du risque de crédit en Python

Similarités avec les valeurs aberrantes

  • Dégradent les performances des modèles de ML
  • Peuvent biaiser les modèles de façon imprévue
  • Peuvent provoquer des erreurs pour certains modèles
Modélisation du risque de crédit en Python

Similarités avec les valeurs aberrantes

  • Dégradent les performances des modèles de ML
  • Peuvent biaiser les modèles de façon imprévue
  • Peuvent provoquer des erreurs pour certains modèles
Type de données manquantes Résultat possible
NULL dans une colonne numérique Erreur
NULL dans une colonne texte Erreur
Modélisation du risque de crédit en Python

Gérer les données manquantes

  • Trois approches principales
    • Remplacer les valeurs manquantes
    • Supprimer les lignes contenant des manquants
    • Laisser les lignes inchangées
  • La compréhension des données guide le choix
Modélisation du risque de crédit en Python

Gérer les données manquantes

  • Trois approches principales
    • Remplacer les valeurs manquantes
    • Supprimer les lignes contenant des manquants
    • Laisser les lignes inchangées
  • La compréhension des données guide le choix
Données manquantes Interprétation Action
NULL dans loan_status Prêt récemment approuvé Retirer des données de prédiction
NULL dans person_age Âge non enregistré ou non divulgué Remplacer par la médiane
Modélisation du risque de crédit en Python

Identifier les données manquantes

  • Les valeurs nulles se détectent avec isnull()
  • On les compte facilement avec sum()
  • La méthode .any() vérifie toutes les colonnes
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Nombre total de valeurs nulles par colonne
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Modélisation du risque de crédit en Python

Remplacer les données manquantes

  • Remplacer les données manquantes avec .fillna() et des fonctions/méthodes d’agrégation
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Exemple de taux d’intérêt manquant remplacé par la moyenne

Modélisation du risque de crédit en Python

Supprimer les données manquantes

  • Utilise les index pour repérer les enregistrements, comme pour les valeurs aberrantes
  • Supprimer entièrement les lignes via .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Modélisation du risque de crédit en Python

Passons à la pratique !

Modélisation du risque de crédit en Python

Preparing Video For Download...