Riscul datelor lipsă în datele despre împrumuturi

Modelarea Riscului de Credit în Python

Michael Crabtree

Data Scientist, Ford Motor Company

Ce sunt datele lipsă?

  • NULL-uri într-un rând în loc de valoarea reală
  • Un șir de caractere gol ''
  • Nu un rând complet gol
  • Poate apărea în orice coloană din date

Exemplu de cadru de date cu lungimea angajării lipsă

Modelarea Riscului de Credit în Python

Similarități cu valorile aberante

  • Afectează negativ performanța modelelor de machine learning
  • Pot introduce părtinire în moduri neașteptate
  • Pot cauza erori pentru anumite modele de machine learning
Modelarea Riscului de Credit în Python

Similarități cu valorile aberante

  • Afectează negativ performanța modelelor de machine learning
  • Pot introduce părtinire în moduri neașteptate
  • Pot cauza erori pentru anumite modele de machine learning
Tip de date lipsă Rezultat posibil
NULL în coloană numerică Eroare
NULL în coloană text Eroare
Modelarea Riscului de Credit în Python

Cum se gestionează datele lipsă

  • În general, trei modalități de gestionare a datelor lipsă
    • Înlocuirea valorilor lipsă
    • Eliminarea rândurilor cu date lipsă
    • Păstrarea rândurilor cu date lipsă nemodificate
  • Înțelegerea datelor determină acțiunea corectă
Modelarea Riscului de Credit în Python

Cum se gestionează datele lipsă

  • În general, trei modalități de gestionare a datelor lipsă
    • Înlocuirea valorilor lipsă
    • Eliminarea rândurilor cu date lipsă
    • Păstrarea rândurilor cu date lipsă nemodificate
  • Înțelegerea datelor determină acțiunea corectă
Date lipsă Interpretare Acțiune
NULL în loan_status Împrumut aprobat recent Eliminați din datele de predicție
NULL în person_age Vârsta neînregistrată sau nedivulgată Înlocuiți cu mediana
Modelarea Riscului de Credit în Python

Identificarea datelor lipsă

  • Valorile nule se identifică cu funcția isnull()
  • Înregistrările nule se numără cu funcția sum()
  • Metoda .any() verifică toate coloanele
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Total number of null values per column
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Modelarea Riscului de Credit în Python

Înlocuirea datelor lipsă

  • Înlocuiți datele lipsă folosind metode precum .fillna() cu funcții și metode de agregare
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Exemplu de rată a dobânzii lipsă înlocuită cu media

Modelarea Riscului de Credit în Python

Eliminarea datelor lipsă

  • Utilizează indici pentru a identifica înregistrările, similar valorilor aberante
  • Eliminați înregistrările complet cu metoda .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Modelarea Riscului de Credit în Python

Să exersăm!

Modelarea Riscului de Credit în Python

Preparing Video For Download...