Rischi dei dati mancanti nei prestiti

Credit Risk Modeling in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Che cosa sono i dati mancanti?

  • NULL in una riga al posto di un valore
  • Una stringa vuota ''
  • Non una riga totalmente vuota
  • Può comparire in qualsiasi colonna

Esempio di dataframe con lunghezza impiego mancante

Credit Risk Modeling in Python

Somiglianze con gli outlier

  • Influenzano negativamente le prestazioni dei modelli ML
  • Possono introdurre bias imprevisti
  • Possono causare errori in alcuni modelli ML
Credit Risk Modeling in Python

Somiglianze con gli outlier

  • Influenzano negativamente le prestazioni dei modelli ML
  • Possono introdurre bias imprevisti
  • Possono causare errori in alcuni modelli ML
Tipo di dato mancante Possibile risultato
NULL in colonna numerica Errore
NULL in colonna stringa Errore
Credit Risk Modeling in Python

Come gestire i dati mancanti

  • Tre modi principali per gestire i dati mancanti
    • Sostituire i valori mancanti
    • Rimuovere le righe con mancanti
    • Lasciare le righe invariate
  • La scelta dipende dalla comprensione dei dati
Credit Risk Modeling in Python

Come gestire i dati mancanti

  • Tre modi principali per gestire i dati mancanti
    • Sostituire i valori mancanti
    • Rimuovere le righe con mancanti
    • Lasciare le righe invariate
  • La scelta dipende dalla comprensione dei dati
Dato mancante Interpretazione Azione
NULL in loan_status Prestito appena approvato Rimuovere dai dati di previsione
NULL in person_age Età non registrata o non dichiarata Sostituire con la mediana
Credit Risk Modeling in Python

Trovare i dati mancanti

  • I valori null si trovano facilmente con isnull()
  • Conta i null con sum()
  • Il metodo .any() controlla tutte le colonne
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Numero totale di valori null per colonna
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
Credit Risk Modeling in Python

Sostituire i dati mancanti

  • Sostituisci i dati mancanti con .fillna() usando funzioni e metodi aggregati
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

Esempio di tasso d'interesse mancante sostituito con la media

Credit Risk Modeling in Python

Eliminare i dati mancanti

  • Usa gli indici per trovare i record, come per gli outlier
  • Rimuovi i record con .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
Credit Risk Modeling in Python

Passons à la pratique !

Credit Risk Modeling in Python

Preparing Video For Download...