Risk med saknade värden i lånedata

Kreditriskmodellering i Python

Michael Crabtree

Data Scientist, Ford Motor Company

Vad är saknade data?

  • NULL-värden i en rad istället för ett verkligt värde
  • En tom sträng ''
  • Inte en helt tom rad
  • Kan förekomma i vilken kolumn som helst

Exempel på dataram med saknad anställningstid

Kreditriskmodellering i Python

Likheter med avvikande värden

  • Försämrar maskininlärningsmodellens prestanda
  • Kan snedvrida modeller på oväntade sätt
  • Kan orsaka fel i vissa maskininlärningsmodeller
Kreditriskmodellering i Python

Likheter med avvikande värden

  • Försämrar maskininlärningsmodellens prestanda
  • Kan snedvrida modeller på oväntade sätt
  • Kan orsaka fel i vissa maskininlärningsmodeller
Typ av saknade data Möjligt resultat
NULL i numerisk kolumn Fel
NULL i strängkolumn Fel
Kreditriskmodellering i Python

Hantera saknade data

  • Generellt tre sätt att hantera saknade data
    • Ersätt värden där data saknas
    • Ta bort rader med saknade data
    • Lämna rader med saknade data oförändrade
  • Förståelse för datan avgör tillvägagångssättet
Kreditriskmodellering i Python

Hantera saknade data

  • Generellt tre sätt att hantera saknade data
    • Ersätt värden där data saknas
    • Ta bort rader med saknade data
    • Lämna rader med saknade data oförändrade
  • Förståelse för datan avgör tillvägagångssättet
Saknade data Tolkning Åtgärd
NULL i loan_status Lån nyligen godkänt Ta bort från prediktionsdata
NULL i person_age Ålder ej registrerad eller angiven Ersätt med median
Kreditriskmodellering i Python

Hitta saknade data

  • Null-värden hittas enkelt med funktionen isnull()
  • Null-poster kan räknas med funktionen sum()
  • Metoden .any() kontrollerar alla kolumner
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
Kreditriskmodellering i Python

Ersätta saknade data

  • Ersätt saknade värden med metoder som .fillna() tillsammans med aggregatfunktioner
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Exempel på saknad ränta ersatt med medelvärde

Kreditriskmodellering i Python

Ta bort saknade data

  • Använder index för att identifiera poster, precis som med avvikande värden
  • Ta bort posterna helt med metoden .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Kreditriskmodellering i Python

Nu kör vi en övning!

Kreditriskmodellering i Python

Preparing Video For Download...