Strategie popolari per imputare statisticamente i valori mancanti in un set di dati.
Molti set di dati del mondo reale possono contenere valori mancanti per vari motivi. Essi sono spesso codificati come NaN, spazi vuoti o qualsiasi altro segnaposto. Addestrare un modello con un set di dati che ha molti valori mancanti può avere un impatto drastico sulla qualità del modello di apprendimento automatico. Alcuni algoritmi come gli stimatori di scikit-learn assumono che tutti i valori siano numerici e abbiano e mantengano un valore significativo.
Un modo per gestire questo problema è quello di liberarsi delle osservazioni che hanno dati mancanti. Tuttavia, si rischia di perdere punti di dati con informazioni preziose. Una strategia migliore sarebbe quella di imputare i valori mancanti. In altre parole, dobbiamo dedurre quei valori mancanti dalla parte esistente dei dati. Ci sono tre tipi principali di dati mancanti:
Mancanti completamente a caso (MCAR)
Mancanti a caso (MAR)
Non mancanti a caso (NMAR)
Tuttavia, in questo articolo, mi concentrerò su 6 modi popolari per l’imputazione dei dati per set di dati cross-sectional (i set di dati time-series sono una storia diversa).
Questo è facile. Basta lasciare che l’algoritmo gestisca i dati mancanti. Alcuni algoritmi possono tenere conto dei valori mancanti e imparare i migliori valori di imputazione per i dati mancanti in base alla riduzione della perdita di formazione (ad esempio XGBoost). Alcuni altri hanno l’opzione di ignorarli (es. LightGBM – use_missing=false). Tuttavia, altri algoritmi andranno nel panico e lanceranno un errore lamentandosi dei valori mancanti (es. Scikit learn – LinearRegression). In questo caso, sarà necessario gestire i dati mancanti e pulirli prima di fornirli all’algoritmo.
Vediamo alcuni altri modi per imputare i valori mancanti prima dell’allenamento:
Nota: Tutti gli esempi che seguono utilizzano il California Housing Dataset di Scikit-learn.
2- Imputazione utilizzando i valori (mediana/media):
Questo funziona calcolando la media/mediana dei valori non mancanti in una colonna e poi sostituendo i valori mancanti all’interno di ogni colonna separatamente e indipendentemente dagli altri. Può essere usato solo con dati numerici.