Regressione logistica per la probabilità di default

Credit Risk Modeling in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Probabilità di default

  • La probabilità di default è la probabilità che qualcuno non rimborsi un prestito
  • Valore tra 0 e 1, ad es. 0.86
  • loan_status pari a 1 = default, 0 = non default
Credit Risk Modeling in Python

Probabilità di default

  • La probabilità di default è la probabilità che qualcuno non rimborsi un prestito
  • Valore tra 0 e 1, ad es. 0.86
  • loan_status pari a 1 = default, 0 = non default
Probabilità di default Interpretazione Stato prestito previsto
0.4 Poco probabile il default 0
0.90 Molto probabile il default 1
0.1 Molto poco probabile il default 0
Credit Risk Modeling in Python

Prevedere probabilità

  • Probabilità di default come output del machine learning
    • Si impara dai dati nelle colonne (feature)
  • Modelli di classificazione (default, non default)
  • Due modelli più comuni:
    • Regressione logistica
    • Albero decisionale

Esempio di regressione logistica e albero decisionale

Credit Risk Modeling in Python

Regressione logistica

  • Simile alla regressione lineare, ma produce solo valori tra 0 e 1

Formula per regressione lineare e logistica

Grafico di esempio: regressione lineare vs logistica

Credit Risk Modeling in Python

Addestrare una regressione logistica

  • La regressione logistica è disponibile nel pacchetto scikit-learn
from sklearn.linear_model import LogisticRegression
  • Si istanzia come funzione con o senza parametri
clf_logistic = LogisticRegression(solver='lbfgs')
  • Usa il metodo .fit() per addestrare
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Training Columns: tutte le colonne tranne loan_status
  • Labels: loan_status (0,1)
Credit Risk Modeling in Python

Training e test

  • Di solito si divide il dataset in due parti
Credit Risk Modeling in Python

Training e test

  • Di solito si divide il dataset in due parti
Sottoinsieme Uso Quota
Train Impara dai dati per generare previsioni 60%
Test Valuta l’apprendimento su nuovi dati 40%
Credit Risk Modeling in Python

Creare i set di training e test

  • Separa i dati in colonne di training e etichette
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Usa la funzione train_test_split() già in scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: percentuale di dati per il test set
  • random_state: seme casuale per riproducibilità
Credit Risk Modeling in Python

Ayo berlatih!

Credit Risk Modeling in Python

Preparing Video For Download...