Ризики пропусків у даних про кредити

Моделювання кредитного ризику в Python

Michael Crabtree

Data Scientist, Ford Motor Company

Що таке пропущені дані?

  • NULL у рядку замість фактичного значення
  • Порожній рядок ''
  • Рядок не повністю порожній
  • Може траплятися в будь-якому стовпці даних

Зразок датафрейму з відсутньою тривалістю зайнятості

Моделювання кредитного ризику в Python

Подібності з викидами

  • Негативно впливають на роботу моделей машинного навчання
  • Можуть неочікувано зміщувати моделі
  • Можуть спричиняти помилки в окремих моделях
Моделювання кредитного ризику в Python

Подібності з викидами

  • Негативно впливають на роботу моделей машинного навчання
  • Можуть неочікувано зміщувати моделі
  • Можуть спричиняти помилки в окремих моделях
Тип пропущених даних Можливий результат
NULL у числовому стовпці Помилка
NULL у рядковому стовпці Помилка
Моделювання кредитного ризику в Python

Як обробляти пропущені дані

  • Зазвичай є три способи обробки пропусків
    • Замінити значення там, де дані відсутні
    • Видалити рядки з пропусками
    • Залишити рядки без змін
  • Розуміння даних визначає подальші дії
Моделювання кредитного ризику в Python

Як обробляти пропущені дані

  • Зазвичай є три способи обробки пропусків
    • Замінити значення там, де дані відсутні
    • Видалити рядки з пропусками
    • Залишити рядки без змін
  • Розуміння даних визначає подальші дії
Пропущені дані Тлумачення Дія
NULL у loan_status Кредит нещодавно схвалено Прибрати з даних для прогнозу
NULL у person_age Вік не зафіксовано або не розкрито Замінити медіаною
Моделювання кредитного ризику в Python

Пошук пропущених даних

  • Null-значення легко знайти функцією isnull()
  • Кількість пропусків просто підрахувати функцією sum()
  • Метод .any() перевіряє всі стовпці
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
Моделювання кредитного ризику в Python

Заміна пропущених даних

  • Замінюйте пропуски методами на кшталт .fillna() з агрегатними функціями
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Приклад заміни відсутньої ставки середнім значенням

Моделювання кредитного ризику в Python

Видалення пропущених даних

  • Використовуйте індекси, щоб знайти записи, як і для викидів
  • Видаліть записи повністю методом .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Моделювання кредитного ризику в Python

Давайте потренуємось!

Моделювання кредитного ризику в Python

Preparing Video For Download...