Regresja logistyczna do przewidywania prawdopodobieństwa niewywiązania się

Modelowanie ryzyka kredytowego w Pythonie

Michael Crabtree

Data Scientist, Ford Motor Company

Prawdopodobieństwo niewywiązania się

  • Prawdopodobieństwo niewywiązania się ze zobowiązań kredytowych to prawdopodobieństwo default
  • Wartość prawdopodobieństwa między 0 a 1, np. 0.86
  • loan_status równy 1 oznacza default, 0 – brak defaultu
Modelowanie ryzyka kredytowego w Pythonie

Prawdopodobieństwo niewywiązania się

  • Prawdopodobieństwo niewywiązania się ze zobowiązań kredytowych to prawdopodobieństwo default
  • Wartość prawdopodobieństwa między 0 a 1, np. 0.86
  • loan_status równy 1 oznacza default, 0 – brak defaultu
Prawdopodobieństwo defaultu Interpretacja Przewidywany status kredytu
0,4 Mało prawdopodobny default 0
0,90 Bardzo prawdopodobny default 1
0,1 Bardzo mało prawdopodobny default 0
Modelowanie ryzyka kredytowego w Pythonie

Przewidywanie prawdopodobieństw

  • Prawdopodobieństwa defaultu jako wynik uczenia maszynowego
    • Uczenie na danych w kolumnach (cechach)
  • Modele klasyfikacji (default, brak defaultu)
  • Dwa najpopularniejsze modele:
    • Regresja logistyczna
    • Drzewo decyzyjne

Przykład regresji logistycznej i drzewa decyzyjnego

Modelowanie ryzyka kredytowego w Pythonie

Regresja logistyczna

  • Podobna do regresji liniowej, lecz zwraca wyłącznie wartości z przedziału 01

Wzór regresji liniowej i logistycznej

Przykładowy wykres regresji liniowej i logistycznej

Modelowanie ryzyka kredytowego w Pythonie

Trenowanie regresji logistycznej

  • Regresja logistyczna dostępna w pakiecie scikit-learn
from sklearn.linear_model import LogisticRegression
  • Wywoływana jako funkcja z parametrami lub bez
clf_logistic = LogisticRegression(solver='lbfgs')
  • Do trenowania używana jest metoda .fit()
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Kolumny treningowe: wszystkie kolumny z wyjątkiem loan_status
  • Etykiety: loan_status (0, 1)
Modelowanie ryzyka kredytowego w Pythonie

Zbiór treningowy i testowy

  • Cały zbiór danych jest zazwyczaj dzielony na dwie części
Modelowanie ryzyka kredytowego w Pythonie

Zbiór treningowy i testowy

  • Cały zbiór danych jest zazwyczaj dzielony na dwie części
Podzbiór danych Zastosowanie Udział
Treningowy Uczenie się na danych w celu generowania predykcji 60%
Testowy Testowanie modelu na nowych, niewidzianych danych 40%
Modelowanie ryzyka kredytowego w Pythonie

Tworzenie zbiorów treningowego i testowego

  • Rozdzielenie danych na kolumny treningowe i etykiety
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Użycie funkcji train_test_split() dostępnej w scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: odsetek danych przeznaczonych do zbioru testowego
  • random_state: wartość ziarna losowego zapewniająca odtwarzalność
Modelowanie ryzyka kredytowego w Pythonie

Czas na ćwiczenia!

Modelowanie ryzyka kredytowego w Pythonie

Preparing Video For Download...