Scaling dei dati con Python

Data Scaling with Python

Come scalare i tuoi dati per renderli adatti alla costruzione del modello.

Nel processo di machine learning, la scalatura dei dati rientra nella pre-elaborazione dei dati o nell’ingegneria delle caratteristiche. La scalatura dei dati prima di utilizzarli per la costruzione del modello può ottenere i seguenti risultati:

  • La scalatura garantisce che le caratteristiche abbiano valori nello stesso intervallo
  • La scalatura garantisce che le caratteristiche utilizzate per la costruzione del modello siano adimensionali
  • La scalatura può essere utilizzata per rilevare gli outlier

Esistono diversi metodi per la scalatura dei dati. Le due tecniche di scalatura più importanti sono la normalizzazione e la standardizzazione.

Scalatura dei dati mediante normalizzazione

Quando i dati vengono scalati mediante normalizzazione, i dati trasformati possono essere calcolati utilizzando questa equazione

dove

Implementazione in Python della normalizzazione

La scalatura mediante normalizzazione può essere implementata in Python utilizzando il seguente codice:

from sklearn.preprocessing import Normalizer
norm = Normalizer()
X_norm = norm.fit_transform(data)

Sia X un dato fornito con

Il X normalizzato è mostrato nella figura sottostante:

Figura 2. X normalizzato con valori compresi tra 0 e 1. Immagine dell’autore.

Scalatura dei dati mediante standardizzazione

Idealemente, la standardizzazione dovrebbe essere utilizzata quando i dati sono distribuiti secondo la distribuzione normale o gaussiana. I dati standardizzati possono essere calcolati come segue:

Qui, è la media dei dati e è la deviazione standard. I valori standardizzati dovrebbero tipicamente trovarsi nell’intervallo [-2, 2], che rappresenta l’intervallo di confidenza del 95%. I valori standardizzati inferiori a -2 o superiori a 2 possono essere considerati outlier. Pertanto, la standardizzazione può essere utilizzata per la rilevazione degli outlier.

Implementazione in Python della standardizzazione

La scalatura mediante standardizzazione può essere implementata in Python utilizzando il seguente codice:

from sklearn.preprocessing import StandardScaler
stdsc = StandardScaler()
X_std = stdsc.fit_transform(data)

Utilizzando i dati descritti in precedenza, i dati standardizzati sono mostrati di seguito:

Figura 3. X standardizzato. Immagine dell’autore.

La media standardizzata è zero. Dalla figura sopra osserviamo che, ad eccezione di alcuni pochi outlier, la maggior parte dei dati standardizzati si trova nell’intervallo [-2, 2].

Conclusione

In sintesi, abbiamo discusso due dei metodi più popolari per la ridimensionamento delle caratteristiche, ovvero: standardizzazione e normalizzazione. I dati normalizzati si trovano nell’intervallo [0, 1], mentre i dati standardizzati si trovano tipicamente nell’intervallo [-2, 2]. Il vantaggio della standardizzazione è che può essere utilizzata per la rilevazione degli outlier. Benjamin O. Tayo è un fisico, educatore di data science e scrittore, nonché proprietario di DataScienceHub. In passato, Benjamin ha insegnato ingegneria e fisica presso l’Università di Central Oklahoma, l’Università del Grand Canyon e la Pittsburgh State University.