Risico van missende data in leningen

Kredietrisicomodellering in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Wat is missende data?

  • NULL's in een rij i.p.v. een echte waarde
  • Een lege string ''
  • Niet een volledig lege rij
  • Kan in elke kolom voorkomen

Voorbeeld van dataframe met ontbrekende employment length

Kredietrisicomodellering in Python

Overeenkomsten met outliers

  • Schaadt prestaties van ML-modellen
  • Kan modellen onverwacht vertekenen
  • Kan fouten veroorzaken bij sommige ML-modellen
Kredietrisicomodellering in Python

Overeenkomsten met outliers

  • Schaadt prestaties van ML-modellen
  • Kan modellen onverwacht vertekenen
  • Kan fouten veroorzaken bij sommige ML-modellen
Type missende data Mogelijk resultaat
NULL in numerieke kolom Error
NULL in stringkolom Error
Kredietrisicomodellering in Python

Omgaan met missende data

  • Drie manieren om met missende data om te gaan
    • Vervang ontbrekende waarden
    • Verwijder rijen met missende data
    • Laat rijen ongewijzigd
  • Keuze hangt af van je data
Kredietrisicomodellering in Python

Omgaan met missende data

  • Drie manieren om met missende data om te gaan
    • Vervang ontbrekende waarden
    • Verwijder rijen met missende data
    • Laat rijen ongewijzigd
  • Keuze hangt af van je data
Missende data Interpretatie Actie
NULL in loan_status Lening net goedgekeurd Verwijderen uit predictiedata
NULL in person_age Leeftijd niet vastgelegd of gemeld Vervangen door mediaan
Kredietrisicomodellering in Python

Missende data vinden

  • Vind null-waarden met isnull()
  • Tel null-records met sum()
  • .any() controleert alle kolommen
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Totaal aantal null-waarden per kolom
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Kredietrisicomodellering in Python

Missende data vervangen

  • Vervang missende data met .fillna() en aggregaties
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Voorbeeld: ontbrekende rente vervangen door gemiddelde

Kredietrisicomodellering in Python

Missende data droppen

  • Gebruik indexen om records te vinden, net als bij outliers
  • Verwijder records met .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Kredietrisicomodellering in Python

Laten we oefenen!

Kredietrisicomodellering in Python

Preparing Video For Download...