1 of 13

Loan Score Construction

Based on dataset : Default of Credit Card Clients

Yining Wang

15 Oct 2025

2 of 13

Score

Probability of default

Binary Classification

Data

Static, Uncensored

Y : default payment 0/1

X :

  • categorical variable
  • continue variable

Model

Logistic Regression ?

Machine Learning ?

Neuro Networking?

3 of 13

LightGBM

  • Learn no lineal relation
  • More intepretable than NN
  • Less data treatment

-(one hot, balance, cross feature relation)

  • Good performance in these task

4 of 13

Workflow

Data

  • Cleaning/Wrangling
  • Description(first idea)
  • Feature Engineering

Model

  • Training
  • Evaluation
  • Improve

-Hyper parameter

-More features

-Sampling ways

Prediction

Construct the score based on predicted probability

5 of 13

Data

  • Cleaning:
  • Feature labels not identical as given interpretation, ex:

‘EDUCATION’ instead have four level , there are ‘ 0 1 2 3 4 5 6 ‘

Kaggle Discution raised the same question, solution: 0 5 6 -> 4 (others)

  • Some clients are not actives from Apr - Sep

( Bill amounts = 0 , Repayment amounts = 0)

We can’t learn clients just based on personal character without looking Bill and repayment status/amounts. These inactive clients don’t help train model

  • No PAY_1 column but have PAY_0, change it

6 of 13

Data

  • Description:
  • -A simple Pearson Correlation Matrix shows there is weak lineal relation between Y and each feature. -> need construct new feature / cross effect between features
  • -Between Payment status, Bill Amount there is a strong relation ->
    • Time dimension should be considered, hard to join time series model for boosting trees -> create feature on time dimension : recency, last month’s delay, payment trend ect
  • -Payment Status Variables hides 3 infos : -1( pay duly), 0 (revolving credit), + (delay months) -> separate into 3 variables for each month

7 of 13

Data

  • Create Features

max_delay : Max delay month

num_delay : Times of delay

is_recent_delay : Delay status for last month(september)

pay_var : Stability of repayment

avg_bill_amt/ avg_pay_amt: mean of bill amount/payment amount

std_bill_amt / std_pay_amt: standard errors of bill amount/payment amount

bill_trend: Last month bill amount - first month bill payment

pay_trend: Last month payment amount - first month payment payment

has_fin_habitat : If one always pay same amount, he/she has a good financial plan

is_revolving_{i} : on month i , one revolving repay

is_pay_duly_{i} : on month i , one pay duly

delay_months_{i}: for bill of month i, one delay it x month

8 of 13

Model

  • Train :

We begin prudently: with learning rate 0.05 and 52 leaves (as we have 52 features first), don’t limite the tree depth. 2000 iteration times.

Early stopped , overfitting after 200 round.

AUC score on validation set : 0.7727

  • Handle overfitting :
    • regularisation
    • reduce leaves, depth, increase the min sample for leaves for pruning more

9 of 13

Model

  • K-fold cross validation

Even though LightGBM can handle Y inbalance, we can still use K-fold CV, to avoid data split biais, and use data better.

I put K=5, in each fold split a train/validation set, calculate final AUC by mean of these 5 fold train result.

Final AUC score : 0.7895

10 of 13

Model

  • Feature Importance

Customers who delay payments more often, especially if their last month’s payment was overdue for several months, and who use a high portion of their loan limit, are more likely to default next month.

11 of 13

Score prediction

To control the scale and stability of score, I join initial score A as 600 for each client, B equal to 50 as scale weight for the variety of default probability. With logarithmic equation, there is an inverse ratio relation between probability of default and score.

Score Joint on notebook

12 of 13

Improvements

  • Merge more data set(features), in practical a financial score constructed on multiple data dimensions (consommation, interest rate..)
  • A time series analysis on bill amount and payment amount may helps get inter relation features
  • Try MLP models, even hard to interpret, may get a light model improvement

13 of 13

Thank you

Yining Wang

15 Oct 2025