Auto loans, mortgages, student loans, debt consolidation... these are just a few examples of credit and loans that people are seeking online. Peer-to-peer lending services such as LendingClub or Prosper allow investors to loan other people money without the use of a bank. However, investors always want to mitigate risk, so this project aims to use machine learning techniques to predict credit risk.
Specifically, this project built and evaluated several machine-learning models to predict credit risk using free data from LendingClub. Credit risk is an inherently imbalanced classification problem (the number of good loans is much larger than the number of at-risk loans), so the project needed to employ different techniques for training and evaluating models with imbalanced classes. It used the imbalanced-learn and Scikit-learn libraries to build and evaluate models using the two following techniques:
- Resampling
- Ensemble Learning
The project used the imbalanced learn library to resample the LendingClub data and build and evaluate logistic regression classifiers using the resampled data.
It did the following:
- Oversample the data using the
Naive Random Oversampler
andSMOTE
algorithms. - Undersample the data using the
Cluster Centroids
algorithm. - Over- and under-sample using a combination
SMOTEENN
algorithm.
For each of the above, it needed to:
- Train a
logistic regression classifier
fromsklearn.linear_model
using the resampled data. - Calculate the
balanced accuracy score
fromsklearn.metrics
. - Calculate the
confusion matrix
fromsklearn.metrics
. - Print the
imbalanced classification report
fromimblearn.metrics
.
It also answered the following:
Which model had the best balanced accuracy score?
Which model had the best recall score?
Which model had the best geometric mean score?
In this section, the project trained and compared two different ensemble classifiers to predict loan risk and evaluate each model. It used the balanced random forest classifier
and the easy ensemble AdaBoost classifier
.
It completed the following steps for each model:
- Train the model using the quarterly data from LendingClub provided in the
Resource
folder. - Calculated the balanced accuracy score from
sklearn.metrics
. - Printed the confusion matrix from
sklearn.metrics
. - Generated a classification report using the
imbalanced_classification_report
from imbalanced learn. - For the balanced random forest classifier only, printed the feature importance sorted in descending order (most important feature to least important) along with the feature score.
It used the above to answer the following:
Which model had the best balanced accuracy score?
Which model had the best recall score?
Which model had the best geometric mean score?
What are the top three features?
- Roberto Cantu - GitHub