Wydajność modelu kredytowego

Modelowanie ryzyka kredytowego w Pythonie

Michael Crabtree

Data Scientist, Ford Motor Company

Ocena dokładności modelu

  • Oblicz dokładność

Wzór na dokładność

  • Użyj metody .score() ze scikit-learn
# Check the accuracy against the test data
clf_logistic1.score(X_test,y_test)
0.81
  • 81% wartości loan_status przewidzianych poprawnie
Modelowanie ryzyka kredytowego w Pythonie

Wykresy krzywej ROC

  • Krzywa ROC (Receiver Operating Characteristic)
    • Przedstawia czułość (true positive rate) względem odsetka fałszywych alarmów (false positive rate)
fallout, sensitivity, thresholds = roc_curve(y_test, prob_default)
plt.plot(fallout, sensitivity, color = 'darkorange')

Przykładowy wykres ROC

Modelowanie ryzyka kredytowego w Pythonie

Analiza wykresów ROC

  • AUC (Area Under Curve): pole między krzywą a losowym predyktorem

Przykładowy wykres ROC z adnotacją dla lift i AUC

Modelowanie ryzyka kredytowego w Pythonie

Progi domyślne

  • Próg: punkt, w którym prawdopodobieństwo oznacza default

Diagram progu prawdopodobieństwa

Modelowanie ryzyka kredytowego w Pythonie

Ustawianie progu

  • Ponownie oznacz pożyczki na podstawie progu 0.5
preds = clf_logistic.predict_proba(X_test)
preds_df = pd.DataFrame(preds[:,1], columns = ['prob_default'])
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.5 else 0)

Próbka danych z prawdopodobieństwami i statusem pożyczki

Modelowanie ryzyka kredytowego w Pythonie

Raporty klasyfikacji kredytowej

  • classification_report() w scikit-learn
from sklearn.metrics import classification_report
classification_report(y_test, preds_df['loan_status'], target_names=target_names)

Przykładowy raport klasyfikacji

Modelowanie ryzyka kredytowego w Pythonie

Wybór metryk klasyfikacji

  • Wybierz i zapisz wybrane elementy z classification_report()
  • Użyj funkcji precision_recall_fscore_support() ze scikit-learn

Przykładowy raport klasyfikacji z domyślnym recall

from sklearn.metrics import precision_recall_fscore_support
precision_recall_fscore_support(y_test,preds_df['loan_status'])[1][1]
Modelowanie ryzyka kredytowego w Pythonie

Czas na ćwiczenia!

Modelowanie ryzyka kredytowego w Pythonie

Preparing Video For Download...