Logistisk regression för sannolikhet för fallissemang

Kreditriskmodellering i Python

Michael Crabtree

Data Scientist, Ford Motor Company

Fallissemangsrisk

  • Sannolikheten att någon inte betalar tillbaka ett lån kallas fallissemangsrisk
  • Ett sannolikhetsvärde mellan 0 och 1, t.ex. 0.86
  • loan_status med värdet 1 innebär fallissemang, 0 innebär inget fallissemang
Kreditriskmodellering i Python

Fallissemangsrisk

  • Sannolikheten att någon inte betalar tillbaka ett lån kallas fallissemangsrisk
  • Ett sannolikhetsvärde mellan 0 och 1, t.ex. 0.86
  • loan_status med värdet 1 innebär fallissemang, 0 innebär inget fallissemang
Fallissemangsrisk Tolkning Förutsedd lånestatus
0.4 Sannolikt inte fallissemang 0
0.90 Mycket sannolikt fallissemang 1
0.1 Mycket osannolikt med fallissemang 0
Kreditriskmodellering i Python

Förutsäga sannolikheter

  • Fallissemangsrisk som utfall från maskininlärning
    • Lär från data i kolumner (särdrag)
  • Klassificeringsmodeller (fallissemang, inget fallissemang)
  • Två vanligaste modellerna:
    • Logistisk regression
    • Beslutsträd

Exempel på logistisk regression och beslutsträd

Kreditriskmodellering i Python

Logistisk regression

  • Liknar linjär regression, men producerar bara värden mellan 0 och 1

Formel för linjär regression och logistisk regression

Exempelgraf för linjär regression och logistisk regression

Kreditriskmodellering i Python

Träna en logistisk regression

  • Logistisk regression finns i paketet scikit-learn
from sklearn.linear_model import LogisticRegression
  • Anropas som en funktion med eller utan parametrar
clf_logistic = LogisticRegression(solver='lbfgs')
  • Använd metoden .fit() för träning
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Träningskolumner: alla kolumner i datan utom loan_status
  • Etiketter: loan_status (0,1)
Kreditriskmodellering i Python

Träning och testning

  • Hela datamängden delas vanligtvis in i två delar
Kreditriskmodellering i Python

Träning och testning

  • Hela datamängden delas vanligtvis in i två delar
Delmängd Användning Andel
Träning Lär från datan för att generera förutsägelser 60 %
Test Testa inlärningen på ny, osedd data 40 %
Kreditriskmodellering i Python

Skapa tränings- och testmängder

  • Dela upp datan i träningskolumner och etiketter
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Använd funktionen train_test_split() som ingår i scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: andel data för testmängden
  • random_state: ett slumpmässigt startvärde för reproducerbarhet
Kreditriskmodellering i Python

Nu kör vi en övning!

Kreditriskmodellering i Python

Preparing Video For Download...