Riziko chybějících dat v úvěrových datech

Credit Risk Modeling in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Co jsou chybějící data?

  • NULL místo skutečné hodnoty
  • Prázdný řetězec ''
  • Ne nutně celý prázdný řádek
  • Může se vyskytovat v libovolném sloupci

Ukázka datového rámce s chybějící délkou zaměstnání

Credit Risk Modeling in Python

Podobnosti s odlehlými hodnotami

  • Negativně ovlivňují výkon modelů strojového učení
  • Mohou modely neočekávaně zkreslit
  • Mohou způsobit chyby u některých modelů strojového učení
Credit Risk Modeling in Python

Podobnosti s odlehlými hodnotami

  • Negativně ovlivňují výkon modelů strojového učení
  • Mohou modely neočekávaně zkreslit
  • Mohou způsobit chyby u některých modelů strojového učení
Typ chybějících dat Možný výsledek
NULL v číselném sloupci Chyba
NULL v řetězcovém sloupci Chyba
Credit Risk Modeling in Python

Jak zpracovat chybějící data

  • Obecně tři způsoby zpracování chybějících dat
    • Nahradit chybějící hodnoty
    • Odstranit řádky s chybějícími daty
    • Ponechat řádky s chybějícími daty beze změny
  • Postup určuje porozumění datům
Credit Risk Modeling in Python

Jak zpracovat chybějící data

  • Obecně tři způsoby zpracování chybějících dat
    • Nahradit chybějící hodnoty
    • Odstranit řádky s chybějícími daty
    • Ponechat řádky s chybějícími daty beze změny
  • Postup určuje porozumění datům
Chybějící data Interpretace Akce
NULL v loan_status Úvěr nedávno schválen Odebrat z predikčních dat
NULL v person_age Věk nezaznamenán nebo nezveřejněn Nahradit mediánem
Credit Risk Modeling in Python

Hledání chybějících dat

  • Hodnoty null snadno najdeme pomocí funkce isnull()
  • Záznamy null lze snadno sečíst pomocí funkce sum()
  • Metoda .any() zkontroluje všechny sloupce
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
Credit Risk Modeling in Python

Nahrazení chybějících dat

  • Chybějící data nahradíme metodami jako .fillna() s agregačními funkcemi
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Příklad nahrazení chybějící úrokové sazby průměrem

Credit Risk Modeling in Python

Odstranění chybějících dat

  • K identifikaci záznamů využívá indexy stejně jako u odlehlých hodnot
  • Záznamy zcela odstraníme pomocí metody .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Credit Risk Modeling in Python

Pojďme procvičovat!

Credit Risk Modeling in Python

Preparing Video For Download...