Tutti sperano sempre di poter disporre di un dataframe completo, le cui feature vantino 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 riportano 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

Come i Big Data stanno rendendo l’agricoltura più “smart”.

In uno scenario globale di penuria delle risorse in contrapposizione ad un aumento continuo della popolazione, diventa sempre più importante produrre più cibo senza impoverire troppo l’ecosistema in cui viviamo. Anche per rispondere a questa esigenza, negli ultimi anni si sta avviando un processo di rinnovamento tecnologico dell’attività agricola, definito spesso come Agricoltura 4.0 ad imitazione della definizione di Industria 4.0.

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 »

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 »

DMBI consultants

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