Risiko durch fehlende Daten in Kreditdaten

Kreditrisikomodellierung in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Was sind fehlende Daten?

  • NULLs in einer Zeile statt eines Werts
  • Ein leerer String ''
  • Keine vollständig leere Zeile
  • Kann in jeder Spalte auftreten

Beispiel-DataFrame mit fehlender Beschäftigungsdauer

Kreditrisikomodellierung in Python

Ähnlichkeiten mit Ausreißern

  • Verschlechtern ML-Modellleistung
  • Können Modelle unerwartet verzerren
  • Verursachen bei manchen ML-Modellen Fehler
Kreditrisikomodellierung in Python

Ähnlichkeiten mit Ausreißern

  • Verschlechtern ML-Modellleistung
  • Können Modelle unerwartet verzerren
  • Können bei manchen ML-Modellen Fehler auslösen
Typ fehlender Daten Mögliche Folge
NULL in numerischer Spalte Fehler
NULL in String-Spalte Fehler
Kreditrisikomodellierung in Python

Umgang mit fehlenden Daten

  • Es gibt drei gängige Strategien
    • Fehlende Werte ersetzen
    • Zeilen mit Fehlwerten entfernen
    • Zeilen unverändert lassen
  • Die Daten bestimmen die Wahl
Kreditrisikomodellierung in Python

Umgang mit fehlenden Daten

  • Drei gängige Strategien
    • Fehlende Werte ersetzen
    • Zeilen mit Fehlwerten entfernen
    • Zeilen unverändert lassen
  • Die Daten bestimmen die Maßnahme
Fehlende Daten Interpretation Aktion
NULL in loan_status Kredit gerade genehmigt Aus Vorhersagedaten entfernen
NULL in person_age Alter nicht erfasst/angegeben Durch Median ersetzen
Kreditrisikomodellierung in Python

Fehlende Daten finden

  • Fehlwerte findest du mit isnull()
  • Fehlende Einträge zählst du mit sum()
  • .any() prüft alle Spalten
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Gesamtzahl der Nullwerte pro Spalte
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Kreditrisikomodellierung in Python

Fehlende Daten ersetzen

  • Ersetze fehlende Werte, z. B. mit .fillna() und Aggregatfunktionen
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Beispiel: fehlender Zinssatz durch Durchschnitt ersetzt

Kreditrisikomodellierung in Python

Fehlende Daten löschen

  • Nutze Indizes zur Identifikation, wie bei Ausreißern
  • Entferne Datensätze mit .drop() vollständig
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Kreditrisikomodellierung in Python

Lass uns üben!

Kreditrisikomodellierung in Python

Preparing Video For Download...