Régression logistique pour la probabilité de défaut

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Probabilité de défaut

  • La probabilité qu'une personne fasse défaut sur un prêt est la probabilité de défaut
  • Une valeur entre 0 et 1, p. ex. 0.86
  • loan_status à 1 signifie défaut, 0 signifie non-défaut
Modélisation du risque de crédit en Python

Probabilité de défaut

  • La probabilité qu'une personne fasse défaut sur un prêt est la probabilité de défaut
  • Une valeur de probabilité entre 0 et 1, p. ex. 0.86
  • loan_status de 1 = défaut, 0 = non-défaut
Probability of Default Interpretation Predicted loan status
0.4 Peu de risque de défaut 0
0.90 Fort risque de défaut 1
0.1 Très peu de risque de défaut 0
Modélisation du risque de crédit en Python

Prédire des probabilités

  • Probabilités de défaut comme résultat d'un apprentissage automatique
    • Apprendre à partir des colonnes de données (caractéristiques)
  • Modèles de classification (défaut, non-défaut)
  • Deux modèles courants :
    • Régression logistique
    • Arbre de décision

Exemple de régression logistique et d'arbre de décision

Modélisation du risque de crédit en Python

Régression logistique

  • Semblable à la régression linéaire, mais ne produit que des valeurs entre 0 et 1

Formule de la régression linéaire et de la régression logistique

Graphique d'exemple : régression linéaire et régression logistique

Modélisation du risque de crédit en Python

Entraîner une régression logistique

  • Régression logistique offerte dans le paquet scikit-learn
from sklearn.linear_model import LogisticRegression
  • Appelée comme fonction avec ou sans paramètres
clf_logistic = LogisticRegression(solver='lbfgs')
  • Utilise la méthode .fit() pour l'entraînement
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Colonnes d'entraînement : toutes les colonnes des données sauf loan_status
  • Étiquettes : loan_status (0,1)
Modélisation du risque de crédit en Python

Entraînement et test

  • L'ensemble de données est généralement scindé en deux parties
Modélisation du risque de crédit en Python

Entraînement et test

  • L'ensemble de données est généralement scindé en deux parties
Data Subset Usage Portion
Train Apprendre à partir des données pour générer des prédictions 60%
Test Évaluer sur de nouvelles données jamais vues 40%
Modélisation du risque de crédit en Python

Créer les ensembles d'entraînement et de test

  • Séparer les données en colonnes d'entraînement et étiquettes
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Utiliser la fonction train_test_split() déjà dans scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size : pourcentage des données pour l'ensemble de test
  • random_state : graine aléatoire pour la reproductibilité
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...