Regressão logística para probabilidade de inadimplência

Modelagem de Risco de Crédito em Python

Michael Crabtree

Data Scientist, Ford Motor Company

Probabilidade de inadimplência

  • A chance de alguém dar calote é a probabilidade de inadimplência
  • Um valor entre 0 e 1, como 0.86
  • loan_status de 1 é inadimplente e 0 é adimplente
Modelagem de Risco de Crédito em Python

Probabilidade de inadimplência

  • A chance de alguém dar calote é a probabilidade de inadimplência
  • Um valor entre 0 e 1, como 0.86
  • loan_status de 1 é inadimplente e 0 é adimplente
Probabilidade de inadimplência Interpretação Status previsto
0.4 Pouco provável 0
0.90 Muito provável 1
0.1 Muito improvável 0
Modelagem de Risco de Crédito em Python

Prevendo probabilidades

  • Probabilidades de inadimplência como resultado de ML
    • Aprender a partir das colunas (features)
  • Modelos de classificação (inadimplente, adimplente)
  • Dois modelos mais comuns:
    • Regressão logística
    • Árvore de decisão

Exemplo de regressão logística e árvore de decisão

Modelagem de Risco de Crédito em Python

Regressão logística

  • Parecida com regressão linear, mas só gera valores entre 0 e 1

Fórmula de regressão linear e regressão logística

Gráfico de exemplo de regressão linear e regressão logística

Modelagem de Risco de Crédito em Python

Treinando uma regressão logística

  • Regressão logística disponível no pacote scikit-learn
from sklearn.linear_model import LogisticRegression
  • Chamada como função com ou sem parâmetros
clf_logistic = LogisticRegression(solver='lbfgs')
  • Usa o método .fit() para treinar
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Colunas de treino: todas as colunas, exceto loan_status
  • Rótulos: loan_status (0,1)
Modelagem de Risco de Crédito em Python

Treino e teste

  • O conjunto de dados geralmente é dividido em duas partes
Modelagem de Risco de Crédito em Python

Treino e teste

  • O conjunto de dados geralmente é dividido em duas partes
Subconjunto Uso Fração
Treino Aprender com os dados para gerar previsões 60%
Teste Testar o aprendizado em dados novos 40%
Modelagem de Risco de Crédito em Python

Criando os conjuntos de treino e teste

  • Separe os dados em colunas de treino e rótulos
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Use a função train_test_split() já disponível no scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: porcentagem para o conjunto de teste
  • random_state: semente aleatória para reprodutibilidade
Modelagem de Risco de Crédito em Python

Vamos praticar!

Modelagem de Risco de Crédito em Python

Preparing Video For Download...