Prédire la probabilité de défaut

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Coefficients de régression logistique

# Interception du modèle
array([-3.30582292e-10])
# Coefficients pour ['loan_int_rate','person_emp_length','person_income']
array([[ 1.28517496e-09, -2.27622202e-09, -2.17211991e-05]])

Formule de la probabilité de défaut avec la régression logistique

# Calcul de la probabilité de défaut
int_coef_sum = -3.3e-10 +
    (1.29e-09 * loan_int_rate) + (-2.28e-09 * person_emp_length) + (-2.17e-05 * person_income)
prob_default = 1 / (1 + np.exp(-int_coef_sum))
prob_nondefault = 1 - (1 / (1 + np.exp(-int_coef_sum)))
Modélisation du risque de crédit en Python

Interpréter les coefficients

# Interception
intercept = -1.02
# Coefficient pour l'ancienneté
person_emp_length_coef = -0.056
  • À chaque +1 an de person_emp_length, le risque de défaut diminue
Modélisation du risque de crédit en Python

Interpréter les coefficients

# Interception
intercept = -1.02
# Coefficient pour l'ancienneté
person_emp_length_coef = -0.056
  • À chaque +1 an de person_emp_length, le risque de défaut diminue
intercept person_emp_length valeur * coef probabilité de défaut
-1.02 10 (10 * -0.06) .17
-1.02 11 (11 * -0.06) .16
-1.02 12 (12 * -0.06) .15
Modélisation du risque de crédit en Python

Utiliser des colonnes non numériques

  • Numériques : loan_int_rate, person_emp_length, person_income

  • Non numériques :

    cr_loan_clean['loan_intent']
    
EDUCATION            
MEDICAL              
VENTURE              
PERSONAL             
DEBTCONSOLIDATION   
HOMEIMPROVEMENT
  • Provoquent des erreurs avec les modèles ML en Python sans traitement préalable
Modélisation du risque de crédit en Python

One-hot encoding

  • Représenter une chaîne par un nombre

Exemple de l’intention de prêt dans les données

Modélisation du risque de crédit en Python

One-hot encoding

  • Représenter une chaîne par un nombre
  • 0 ou 1 dans une nouvelle colonne column_VALUE

Exemple de one-hot encoding de la colonne loan intent

Modélisation du risque de crédit en Python

Get dummies

  • Utiliser get_dummies() de pandas
# Séparer les colonnes numériques
cred_num = cr_loan.select_dtypes(exclude=['object'])
# Séparer les colonnes non numériques
cred_cat = cr_loan.select_dtypes(include=['object'])
# One-hot encoder uniquement les colonnes non numériques
cred_cat_onehot = pd.get_dummies(cred_cat)
# Fusionner les colonnes numériques avec les colonnes encodées
cr_loan = pd.concat([cred_num, cred_cat_onehot], axis=1)
Modélisation du risque de crédit en Python

Prédire l’avenir, probablement

  • Utiliser la méthode .predict_proba() de scikit-learn
# Entraîner le modèle
clf_logistic.fit(X_train, np.ravel(y_train))
# Prédire avec le modèle
clf_logistic.predict_proba(X_test)
  • Crée un tableau de probabilités de défaut
# Probabilités : [[sans défaut, défaut]]
array([[0.55, 0.45]])
Modélisation du risque de crédit en Python

Passons à la pratique !

Modélisation du risque de crédit en Python

Preparing Video For Download...