Money

Lending Club est une société américaine de financement participatif basée à San Fransisco. Elle a été fondée par Renaud Laplanche en 2006. C’est une plateforme de prêt entre particuliers qui permet aux emprunteurs d’avoir accès à des crédits à des taux inférieurs à ceux proposés par les banques traditionnelles et permet aux investisseurs d’investir leur épargne sous la forme d’un prêt à une communauté qui vérifie certaines conditions (risque lié à l’emprunteur, dimension sociale ou solidaire, etc.).

Pour une banque ou un institut qui offre du crédit, il est crucial de connaître les clients et leur capacité de remboursement. Les techniques traditionnelles d’évaluation du crédit existent déjà et tiennent compte des différentes caractéristiques d’un client, mais elles ne s’adaptent pas facilement à un nouvel environnement, contrairement aux techniques d’apprentissage machine qui peuvent détecter des relations et des comportements invisibles.

Les prédictions du modèle peuvent être exprimées sous la forme d’une probabilité de solvabilité ou sous la forme d’une classification binaire (payeur/délinquant).

Pour résoudre le problème, nous utiliserons un ensemble de données partielles de la compétition du club de prêt sur Kaggle.

Exploration des ensembles de données

NomTypeValeurs manquantesSignification
IdNumérique0Id du client
Loan_amntNumérique0Montant du prêt
Emp_lengthCatégorique0Durée d’emploi
Home_ownershipCatégorique0L’accession à la propriété
Zip_codeCatégorique0Code postal aux Etats-Unis
Annual_incNumérique0Revenu annuel
DtiNumérique0Dette par rapport au revenu
Delinq_2yrsNumérique0Nombre d’impayés au cours des deux dernières années
Inq_last_6mthsNumérique0Nombre de demandes de renseignements au cours des 6 derniers mois
Open_accNumérique0Nombre de transactions ouvertes au cours des 6 derniers mois
Pub_recNumérique0Nombre de documents publics dérogatoires
Revol_balNumérique0Solde du crédit rotatif
Revol_utilNumérique93Le taux d’utilisation des lignes renouvelables
Total_accNumérique0Le nombre total de lignes de crédit actuellement dans le dossier de crédit de l’emprunteur.
Collections_12_mths_ex_medNumérique13Nombre de collectes en 12 mois hors collectes médicales
Acc_now_delinqNumérique0Le nombre de comptes sur lesquels l’emprunteur est en retard.
Tot_coll_amtNumérique22361Montant total dû
Tot_cur_balNumérique22361Solde total du compte
Toal_rev_hi_limNumérique22361Limite de crédit
PurposeCatégorique0Objet du prêt
Loan_statusCatégorique0Payeur/Délinquant

Loan_status est notre variable d’intérêt sur laquelle nous allons faire la prédiction. Il y a deux catégories :

  • Payeurs : Des gens qui ont payé tout leur crédit.
    Nombre de personnes dans cette catégorie : 60432. Cela représente 61 % de l’ensemble du budget de l
  • Délinquants : Les gens qui n’ont pas remboursé leur crédit.
    Nombre de personnes dans cette catégorie : 38766. Cela représente 39% de l’ensemble des individus.

Nous ne sommes donc pas dans le contexte d’un problème de données fortement déséquilibrées où le pourcentage de la classe minoritaire est proche de 5%.
Dans le cas discuté précédemment, deux techniques pourraient être utilisées :

  • Suréchantillonnage : Nous allons dupliquer les individus de la classe minoritaire afin d’équilibrer les deux classes.
  • Sous-échantillonnage : Nous allons réduire la taille de la classe majoritaire afin de l’équilibrer avec la classe minoritaire.

Le but de ces deux techniques est d’inclure le déséquilibre dans la fonction de coût de l’algorithme afin de ne pas discriminer une classe en faveur de l’autre.

Ingénierie des caractéristiques

Le processus d’ingénierie des variables prédicteurs doit se faire simultanément sur la formation et les tests pour assurer un traitement similaire. Nous combinons donc les deux ensembles de données avant d’appliquer toute fonction.

Remplissage des valeurs manquantes

Il faut ici distinguer les deux types de variables (catégorielles et numériques) puisque le traitement sera différent.

Pour les variables catégorielles, nous créerons une catégorie ” Inconnu ” qui s’adressera aux personnes pour lesquelles la catégorie d’une variable catégorielle n’a pas été mentionnée.

Pour les variables continues, nous remplacerons NaN par la médiane et créerons une variable de contrôle binaire appelée ” manquante ” qui est 1 s’il manque une valeur dans la ligne et 0 sinon.

One-hot encoding

Nous créons des variables de type binaire pour chaque catégorie de chaque variable catégorielle : l’objectif est de remplacer les chaînes de caractères (non interprétables par la majorité des algorithmes) par des variables numériques. Ainsi, la valeur “purpose_medical” sera égale à 1 si l’objet du prêt de la personne est “médical” dans la variable catégorielle “purpose”.

Modèles d’apprentissage machine

Nous utiliserons trois algorithmes de classification : Régression logistique, Random Forest et XGBoost qui est une version améliorée du gradient boosting. Ces algorithmes sont détaillés dans Qu’est-ce que l’apprentissage supervisé ?

Au cours du processus, il est nécessaire de bien choisir l’ensemble des prédicteurs et de sélectionner les meilleurs hyper-paramètres. Plusieurs configurations seront évaluées pour ne choisir que celle fournissant la meilleure performance.

Résultats

Dans un premier temps, nous évaluerons l’amélioration due à la sélection d’hyper-paramètres.
Nous utilisons la recherche aléatoire et nous obtenons les paramètres et scores suivants pour chaque algorithme :

AlgorithmeHyper-paramètresPrécisionRappelF1
Régression logistiquePenalty = “elastic net”
L1_ratio = 1
Alpha = 0.01
42%55%47%
Random ForestN_estimators = 300
Max_features = “sqrt”
Criterion=”entropy”
59%34%43%
XGBoost ClassifierN_estimators = 500
Learning_rate = 0.03
Colsample_bylevel = 0.7
Max_depth = 7
59%40%47%

Les courbes de ROC et de précision/rappel obtenues sont :

ROC Curve
Precision/Recall Curve

Nous trouvons que l’algorithme XGBoost offre les meilleures performances par rapport aux trois scores : les surfaces sous la courbe ROC, la courbe de précision et le score F1.
Comme pour la régression logistique, l’aire sous la courbe ROC est proche de 0,5, ce qui signifie qu’elle est toujours équivalente à un classificateur aléatoire.

Dans un deuxième temps, nous conserverons les paramètres précédemment choisis pour le XGBoost et nous appliquerons également la sélection des prédicteurs dans le but de réduire la taille. La méthode qui sera évaluée est l’élimination récursive des variables prédictives qui est implémentée sur Scikit-Learn dans le module RFE. Cette méthode nécessite des variables catégorielles discrètes, mais comme il y aura autant d’exécutions que de variables, il est recommandé d’utiliser le LabelEncoder qui transforme les variables catégorielles en variables ordinales. Il est également implémenté dans Scikit-Learn.

Le classement obtenu est :

This image has an empty alt attribute; its file name is Capture-d’écran-2019-08-05-à-17.18.47-1024x800.png

Examinons de plus près les variables prédicteurs les plus importantes. Pour que la plateforme puisse prêter de l’argent à un client, il est important qu’il dispose des informations suivantes :

  • Revenu annuel (annual_inc)
  • Montant du crédit (loan_amt)
  • Heures de travail (emp_length)
  • Ratio d’endettement par rapport au revenu (dti)
  • Solde du crédit revolving (revol_bal)
  • Nombre d’appels et d’enquêtes publiques (inq_last_6_mths)
  • Nombre de défaillances d’autres entreprises au cours des deux dernières années (delinq_2yrs)
  • Nous trouvons en fait cette information dans le classement.

Les résultats obtenus en sélectionnant les trois quarts des variables prédicteurs les plus importantes sont résumés ci-dessous :

AlgorithmePrécisionRappelF1-scoreROC auc
XGboost Classifier59%40%47%69%

Interprétation

Nous sommes donc en mesure de détecter 40% des cas positifs (personnes qui n’ont pas remboursé) dans les données et d’avoir 59% des précisions positives correctes (ce qui signifie que 40% des prévisions positives sont de fausses alertes : personnes solvables et étiquetées comme insolvables). Le score F1 reflète la combinaison de la précision et du rappel et est proche de 50%.
L’aire sous la courbe ROC est de 70%, nous dépassons de 20% celle associée au classificateur aléatoire.

LEAVE A REPLY

Please enter your comment!
Please enter your name here