Risco com dados ausentes em empréstimos

Modelagem de Risco de Crédito em Python

Michael Crabtree

Data Scientist, Ford Motor Company

O que são dados ausentes?

  • NULLs na linha em vez de um valor real
  • Uma string vazia ''
  • Não é uma linha totalmente vazia
  • Pode ocorrer em qualquer coluna

Exemplo de dataframe com tempo de emprego ausente

Modelagem de Risco de Crédito em Python

Semelhanças com outliers

  • Prejudicam o desempenho do modelo de ML
  • Podem enviesar modelos de formas inesperadas
  • Podem causar erros em alguns modelos de ML
Modelagem de Risco de Crédito em Python

Semelhanças com outliers

  • Prejudicam o desempenho do modelo de ML
  • Podem enviesar modelos de formas inesperadas
  • Podem causar erros em alguns modelos de ML
Tipo de dado ausente Possível resultado
NULL em coluna numérica Erro
NULL em coluna de string Erro
Modelagem de Risco de Crédito em Python

Como lidar com dados ausentes

  • Três formas principais de lidar com ausentes
    • Substituir onde falta dado
    • Remover linhas com ausentes
    • Deixar as linhas como estão
  • Entender os dados define a ação
Modelagem de Risco de Crédito em Python

Como lidar com dados ausentes

  • Três formas principais de lidar com ausentes
    • Substituir onde falta dado
    • Remover linhas com ausentes
    • Deixar as linhas como estão
  • Entender os dados define a ação
Dado ausente Interpretação Ação
NULL em loan_status Empréstimo aprovado recentemente Remover dos dados de previsão
NULL em person_age Idade não registrada ou informada Substituir pela mediana
Modelagem de Risco de Crédito em Python

Encontrando dados ausentes

  • Valores nulos são fáceis de achar com isnull()
  • Registros nulos podem ser contados com sum()
  • O método .any() verifica todas as colunas
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Total de valores nulos por coluna
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Modelagem de Risco de Crédito em Python

Substituindo dados ausentes

  • Substitui os ausentes com .fillna() usando funções agregadas
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Exemplo de taxa de juros ausente substituída pela média

Modelagem de Risco de Crédito em Python

Removendo dados ausentes

  • Usa índices para identificar registros, como com outliers
  • Remove os registros com .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Modelagem de Risco de Crédito em Python

Vamos praticar!

Modelagem de Risco de Crédito em Python

Preparing Video For Download...