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 ?

  • NULL dans une ligne au lieu d'une vraie valeur
  • Une chaîne vide ''
  • Pas une ligne entièrement vide
  • Peut survenir dans n'importe quelle colonne

Exemple de trame de données avec durée d'emploi manquante

Modélisation du risque de crédit en Python

Similarités avec les valeurs aberrantes

  • Nuire au rendement des modèles de machine learning
  • Biaiser les modèles de manière imprévue
  • Provoquer des erreurs pour certains modèles de machine learning
Modélisation du risque de crédit en Python

Similarités avec les valeurs aberrantes

  • Nuire au rendement des modèles de machine learning
  • Biaiser les modèles de manière imprévue
  • Provoquer des erreurs pour certains modèles de machine learning
Type de données manquantes Résultat possible
NULL dans une colonne numérique Erreur
NULL dans une colonne de chaînes Erreur
Modélisation du risque de crédit en Python

Comment traiter les données manquantes

  • Trois approches courantes pour traiter les données manquantes
    • Remplacer les valeurs manquantes
    • Supprimer les lignes contenant des manquements
    • Laisser ces lignes inchangées
  • La compréhension des données oriente le choix
Modélisation du risque de crédit en Python

Comment traiter les données manquantes

  • Trois approches courantes pour traiter les données manquantes
    • Remplacer les valeurs manquantes
    • Supprimer les lignes contenant des manquements
    • Laisser ces lignes inchangées
  • La compréhension des données oriente 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 consigné ou non divulgué Remplacer par la médiane
Modélisation du risque de crédit en Python

Repérer les données manquantes

  • Les valeurs nulles se détectent facilement avec isnull()
  • On peut les compter 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 : taux d'intérêt manquant remplacé par la moyenne

Modélisation du risque de crédit en Python

Supprimer les données manquantes

  • Utiliser les indices pour repérer les enregistrements, comme pour les valeurs aberrantes
  • Supprimer complètement les enregistrements avec .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...