Tutti sperano sempre di poter disporre di un dataframe completo, le cui feature vantano un’omogenea profondità dei dati, in modo da poter porre delle solide basi per iniziare a sviluppare un modello di Machine Learning. Purtroppo nel mondo reale ciò che accade è perfettamente l’opposto ed è consuetudine dover manipolare dataset contenenti valori mancanti.

Solitamente, la prima soluzione a portata di mano sembra essere la rimozione delle righe che riportando valori blank o NaN. Tuttavia, questa scelta spesso può essere controproducente, in quanto può comportare la perdita di un’informativa preziosa, soprattutto in casi in cui il dataset dispone già di una scarsa profondità storica. Perciò, data la frequenza di accadimento ed il peso di questa problematica sulle performance dei risultati, è sembrato opportuno portare all’attenzione dei nuovi spunti da prendere in considerazione in fase di Preprocessing. In particolare, una soluzione risultata vincente, in alternativa ad approcci classici quali la PCA (Principal Component Analysis) e la Feature Selection, è l’imputazione dei dati mancanti, ovvero, ricavare quest’ultimi dai dati noti.

L’imputazione di tipo “univariata” prevede il completamento dei valori mancanti di una specifica feature utilizzando le dimensioni a disposizione della feature medesima. In Python, in questi casi si utilizza il pacchetto SimpleImputer della libreria sklearn.impute, il quale prevede di default l’imputazione delle feature facendo la media dei dati noti. In alternativa, è possibile impostare come metodo la mediana, il most_frequent (str) e constant (str).

Infine, un ulteriore approccio utilizzato per il riempimento del dataset, di tipo “multivariato”, prevede le feature con valori mancanti come funzione delle altre feature mediante una schedulazione Round Robin. In Python, per questo approccio viene utilizzato l’IterativeImputer, sempre dalla libreria sklearn.impute.

L’approccio multivariato è sicuramente più sofisticato rispetto a quello univariato. Ad ogni modo entrambi gli approcci, sia SimpleImputer che IterativeImputer, possono essere utilizzati in una pipeline come un modo per costruire uno stimatore composito che supporti l’imputazione.

Autore: Francesca Giannella | Senior Data Scientist DMBI
Photo by Marisa Morton on Unsplash

Articoli correlati

Graph Database: non solo tabelle…

A partire dagli anni 2000, l’aumentare della complessità e della quantità dei flussi di dati hanno determinato la necessità di creare strumenti di archiviazione alternativi. I database non relazionali sono stati introdotti in quegli anni proprio allo scopo di ricostruire e gestire più rapidamente le connessioni esistenti tra entità appartenenti a data lake divenuti, oramai, di dimensioni “oceaniche”.

Leggi tutto »

AI: nuove task forces contro il Covid-19

Virus e batteri hanno sempre convissuto con noi, ma se abbiamo imparato in fretta a difenderci dai predatori più grandi e temibili, ci è servito molto più tempo per arrivare a conoscere l’esistenza di questi microscopici organismi e per capire come proteggerci dai loro insidiosi attacchi.

Leggi tutto »

DMBI consultants

via Candido Galli, 5 – Frascati
00044 – Roma
info@dmbi.org
Fax | Tel +39 06 9422 421
Part. IVA 09913981008