Regresión logística para la probabilidad de impago

Modelado del riesgo crediticio en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Probabilidad de impago

  • La probabilidad de que alguien no pague un préstamo es la probabilidad de impago
  • Un valor entre 0 y 1, como 0.86
  • loan_status de 1 = impago; 0 = no impago
Modelado del riesgo crediticio en Python

Probabilidad de impago

  • La probabilidad de que alguien no pague un préstamo es la probabilidad de impago
  • Un valor entre 0 y 1, como 0.86
  • loan_status de 1 = impago; 0 = no impago
Probabilidad de impago Interpretación Estado del préstamo previsto
0.4 Poco probable que impague 0
0.90 Muy probable que impague 1
0.1 Muy poco probable que impague 0
Modelado del riesgo crediticio en Python

Predecir probabilidades

  • Probabilidades de impago como resultado de machine learning
    • Aprende de las columnas (features)
  • Modelos de clasificación (impago, no impago)
  • Dos modelos más comunes:
    • Regresión logística
    • Árbol de decisión

Ejemplo de regresión logística y árbol de decisión

Modelado del riesgo crediticio en Python

Regresión logística

  • Similar a la regresión lineal, pero solo produce valores entre 0 y 1

Fórmula de regresión lineal y logística

Gráfico de ejemplo de regresión lineal y logística

Modelado del riesgo crediticio en Python

Entrenar una regresión logística

  • Regresión logística disponible en el paquete scikit-learn
from sklearn.linear_model import LogisticRegression
  • Se llama como función con o sin parámetros
clf_logistic = LogisticRegression(solver='lbfgs')
  • Usa el método .fit() para entrenar
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Columnas de entrenamiento: todas las columnas excepto loan_status
  • Etiquetas: loan_status (0,1)
Modelado del riesgo crediticio en Python

Entrenamiento y prueba

  • Normalmente se divide todo el conjunto en dos partes
Modelado del riesgo crediticio en Python

Entrenamiento y prueba

  • Normalmente se divide todo el conjunto en dos partes
Subconjunto Uso Porcentaje
Train Aprender de los datos para generar predicciones 60%
Test Probar el aprendizaje en datos no vistos 40%
Modelado del riesgo crediticio en Python

Creación de los conjuntos de train y test

  • Separa los datos en columnas de entrenamiento y etiquetas
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Usa la función train_test_split() de scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: porcentaje de datos para el conjunto de prueba
  • random_state: semilla aleatoria para reproducibilidad
Modelado del riesgo crediticio en Python

¡Vamos a practicar!

Modelado del riesgo crediticio en Python

Preparing Video For Download...