De kans op wanbetaling voorspellen

Kredietrisicomodellering in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Coëfficiënten van logistische regressie

# Modelintercept
array([-3.30582292e-10])
# Coëfficiënten voor ['loan_int_rate','person_emp_length','person_income']
array([[ 1.28517496e-09, -2.27622202e-09, -2.17211991e-05]])

Formule voor kans op wanbetaling met logistische regressie

# Kans op wanbetaling berekenen
int_coef_sum = -3.3e-10 +
    (1.29e-09 * loan_int_rate) + (-2.28e-09 * person_emp_length) + (-2.17e-05 * person_income)
prob_default = 1 / (1 + np.exp(-int_coef_sum))
prob_nondefault = 1 - (1 / (1 + np.exp(-int_coef_sum)))
Kredietrisicomodellering in Python

Coëfficiënten interpreteren

# Intercept
intercept = -1.02
# Coëfficiënt voor duur werkervaring
person_emp_length_coef = -0.056
  • Bij elke toename van 1 jaar in person_emp_length is de kans op wanbetaling kleiner
Kredietrisicomodellering in Python

Coëfficiënten interpreteren

# Intercept
intercept = -1.02
# Coëfficiënt voor duur werkervaring
person_emp_length_coef = -0.056
  • Bij elke toename van 1 jaar in person_emp_length is de kans op wanbetaling kleiner
intercept person_emp_length waarde * coef kans op wanbetaling
-1.02 10 (10 * -0.06) .17
-1.02 11 (11 * -0.06) .16
-1.02 12 (12 * -0.06) .15
Kredietrisicomodellering in Python

Niet-numerieke kolommen gebruiken

  • Numeriek: loan_int_rate, person_emp_length, person_income

  • Niet-numeriek:

    cr_loan_clean['loan_intent']
    
EDUCATION            
MEDICAL              
VENTURE              
PERSONAL             
DEBTCONSOLIDATION   
HOMEIMPROVEMENT
  • Veroorzaakt fouten bij machine learning-modellen in Python, tenzij verwerkt
Kredietrisicomodellering in Python

One-hot-encoding

  • Stel een string voor met een getal

Voorbeeld van leningdoel in de data

Kredietrisicomodellering in Python

One-hot-encoding

  • Zet een string om naar een getal
  • 0 of 1 in een nieuwe kolom column_VALUE

Voorbeeld van one-hot-encoding van de kolom loan intent

Kredietrisicomodellering in Python

Get dummies

  • Gebruik get_dummies() in pandas
# Scheid de numerieke kolommen
cred_num = cr_loan.select_dtypes(exclude=['object'])
# Scheid de niet-numerieke kolommen
cred_cat = cr_loan.select_dtypes(include=['object'])
# One-hot-encode alleen de niet-numerieke kolommen
cred_cat_onehot = pd.get_dummies(cred_cat)
# Voeg de numerieke en one-hot-encoded kolommen samen
cr_loan = pd.concat([cred_num, cred_cat_onehot], axis=1)
Kredietrisicomodellering in Python

De toekomst voorspellen, waarschijnlijk

  • Gebruik de methode .predict_proba() in scikit-learn
# Train het model
clf_logistic.fit(X_train, np.ravel(y_train))
# Voorspel met het model
clf_logistic.predict_proba(X_test)
  • Maakt een array met kansen op wanbetaling
# Waarschijnlijkheden: [[geen wanbetaling, wanbetaling]]
array([[0.55, 0.45]])
Kredietrisicomodellering in Python

Laten we oefenen!

Kredietrisicomodellering in Python

Preparing Video For Download...