Data pre-processing nel Machine Learning

In questo articolo vediamo uno degli step principali in una pipeline di machine Learning: ovvero il data pre-processing.

data pre-processing
Photo from Pixabay

Ogni Data Scientist sa che avere i dati belli pronti pronti per i propri modelli è una chimera. Quasi mai i dati così come sono possono essere utilizzati nei modelli, e questo, sotto certi punti di vista in realtà, è anche un bene.

Questo perché parte del lavoro di un Data Scientist consiste non sono nel costruire i modelli, ma anche nel comprendere come essi possano essere utilizzati al meglio per gli scopi analitici. In questi casi è necessaria una certa sensibilità, risorsa purtroppo molto spesso sottovalutata in questo ambito.

Una normale Machine Learning Pipeline infatti è fatta da una serie di step, che vede, in posizione privilegiata, il Data pre-processing, ovvero quella fase in cui vengono fatte delle manipolazioni sui dati.

Abbiamo parlato di questo aspetto come uno delle tappe fondamentali descritte nel metodo CRISP-DM (che puoi recuperare qui), nella sezione di Data Preparation. Oggi andiamo a vedere meglio di cosa si tratta.

Data pre-processing: cosè

Per Data pre-processing si intendono tutte quelle manipolazioni che vengono fatte sui dati prima di essere usate nei modelli di Machine Learning, di Deep Learning o di statistica standard.

In alcuni casi tale passaggio risulta imprescindibile (in casi in cui per esempio è proprio impossibile poter utilizzare l’algoritmo), in altri casi invece è estremamente consigliato perché permette di ottimizzare il bagaglio informativo dei dati a disposizione.

Per questo secondo caso, quello consigliato, vige la famosa regola: garbage in, garbage out. Ovvero: se mettiamo dentro della schifezza, il risultato non potrà che essere schifezza.

Questa operazione è composta da molte fasi che variano naturalmente a seconda del contesto e dei dati a disposizione, ma cerchiamo di esporre alcune linee guida utili per svolgerla al meglio.

ENCODING

Una delle operazioni obbligatorie per poter utilizzare un algoritmo statistico è quella definita codifica (o encoding) delle variabili qualitative.

Si tratta di quelle variabili che rappresentano una qualche qualità, una entità non numerica, e che devono essere convertite in numeri per poter essere digerite da un algoritmo.

La squadra preferita per esempio, che potrebbe essere “NapolI” o “Milan”, non potrà essere data in questa forma ai nostri modelli, ma avrà bisogno di una codifica.

Abbiamo trattato questo argomento in modo più approfondito in questo articolo, elencando alcune delle tecniche più diffuse di encoding. Tra queste ricordiamo: Ordinal Encoding, Target Encoding e One-Hot Encoding.

Standardizzazione

La standardizzazione (standardization) è un processo che rende più facilmente confrontabile una variabile quantitativa con altre variabili quantitative.

La trasformazione crea una variabile con media pari a 0 e deviazione standard pari a 1.

Questa operazione è importante perché permette di confrontare due valori che hanno magari unità di misura diverse (come centimetri e chilogrammi), cosa molto utile nei modelli di Machine Learning. In questo modo gli ordini di grandezza non rischiano di interferire sulla bontà del modello, andando ad alterare i rapporti tra le variabili indipendenti e il target.

normalizzazione

Una tecnica simile alla standardizzazione è la normalizzazione.

In questo caso il nostro obiettivo è quello di porre i dati all’interno di un determinato intervallo. Lo scopo è simile a quello della standardizzazione, ovvero evitare che ordini di grandezza diversi vadano ad avere un impatto sul modello.

Esistono diverse tecniche di normalizzazione: una delle più comuni è quella del MinMaxScaler. Uno degli intervalli più utilizzati è 0 (per il minimo) e 1 (per il massimo).

Imputation

Per imputation si intende la sostituzione dei valori mancanti con un qualche altro valore.

Molti modelli infatti non accettano i missing (valori mancanti), e risulta necessario rimpiazzare questi missing con degli altri valori per non perdere gran parte dei dati.

Questa operazione è molto delicata, non a caso le abbiamo dedicato un articolo intero che puoi trovare qui.

A seconda del tipo di variabile, cambiano gli approcci da utilizzare.

Per le variabili quantitative, alcune delle tecniche più utilizzate sono:

  • Valore Standard fisso
  • Media della variabile
  • Mediana della variabile

Per le variabili qualitative, abbiamo invece:

  • Moda della variabile (analogo qualitativo della media e mediana)
  • Valore Standard fisso come “ND”, che posso usare nel modello alla stregua di un livello della variabile.

Esiste anche la possibilità di stratificazione dei valori: posso per esempio non usare la mediana in generale, ma la mediana di un gruppo specifico a cui appartiene l’osservazione il cui valore è mancante.

Conclusione

In questo articolo abbiamo visto cosa si intenda per Data pre-processing, soffermandoci su quelli che sono i suoi step fondamentali.

Al riguardo, abbiamo infatti trattato le seguenti operazioni: codifica (o encoding), standardizzazione, normalizzazione e imputation.