Logistische regressie voor defaultkans

Kredietrisicomodellering in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Defaultkans

  • De kans dat iemand een lening niet terugbetaalt is de defaultkans
  • Een kans tussen 0 en 1, zoals 0.86
  • loan_status is 1 bij default en 0 bij geen default
Kredietrisicomodellering in Python

Defaultkans

  • De kans dat iemand een lening niet terugbetaalt is de defaultkans
  • Een kans tussen 0 en 1, zoals 0.86
  • loan_status is 1 bij default en 0 bij geen default
Defaultkans Interpretatie Voorspelde status
0.4 Onwaarschijnlijk dat default 0
0.90 Zeer waarschijnlijk dat default 1
0.1 Zeer onwaarschijnlijk dat default 0
Kredietrisicomodellering in Python

Kansen voorspellen

  • Defaultkansen als output van machine learning
    • Leren van kolommen (features)
  • Classificatiemodellen (default, geen default)
  • Twee meest gebruikte modellen:
    • Logistische regressie
    • Beslissingsboom

Voorbeeld van logistische regressie en beslissingsboom

Kredietrisicomodellering in Python

Logistische regressie

  • Lijkt op lineaire regressie, maar geeft alleen waarden tussen 0 en 1

Formule voor lineaire en logistische regressie

Voorbeeldgrafiek van lineaire en logistische regressie

Kredietrisicomodellering in Python

Een logistische regressie trainen

  • Logistische regressie zit in het scikit-learn-pakket
from sklearn.linear_model import LogisticRegression
  • Aanroepen als functie met of zonder parameters
clf_logistic = LogisticRegression(solver='lbfgs')
  • Trainen met de methode .fit()
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Trainingskolommen: alle kolommen behalve loan_status
  • Labels: loan_status (0,1)
Kredietrisicomodellering in Python

Trainen en testen

  • De volledige dataset wordt meestal in tweeën gesplitst
Kredietrisicomodellering in Python

Trainen en testen

  • De volledige dataset wordt meestal in tweeën gesplitst
Subset Gebruik Aandeel
Train Leren van data om voorspellingen te maken 60%
Test Leren testen op nieuwe, ongeziene data 40%
Kredietrisicomodellering in Python

Train- en testsets maken

  • Splits de data in trainingsfeatures en labels
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Gebruik de functie train_test_split() uit scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: percentage data voor de testset
  • random_state: random seed voor reproduceerbaarheid
Kredietrisicomodellering in Python

Laten we oefenen!

Kredietrisicomodellering in Python

Preparing Video For Download...