Standardscaler, Minmaxscaler, Maxabsscaler
Esistono tre approcci diffusi per la normalizzazione dei dati:
MinMaxScaler
: normalizza le caratteristiche in un intervallo [0, 1];MaxAbsScaler
: normalizza le caratteristiche in modo che il valore assoluto massimo sia 1 (quindi i dati sono garantiti nell'intervallo [-1, 1]);StandardScaler
: standardizza le caratteristiche rendendo la media uguale a 0 e la varianza uguale a 1.
Per illustrare il funzionamento degli scaler, si considerino le caratteristiche 'culmen_depth_mm'
e 'body_mass_g'
dal penguins dataset. Queste caratteristiche possono essere rappresentate graficamente per osservare le loro scale.
MinMaxScaler
Il MinMaxScaler
funziona sottraendo il valore minimo (per far partire i valori da zero) e poi dividendo per (x_max - x_min) per rendere il risultato minore o uguale a 1.
Ecco la gif che mostra come funziona il MinMaxScaler
:
MaxAbsScaler
Il MaxAbsScaler
funziona trovando il valore assoluto massimo e dividendo ciascun valore per esso. In questo modo il valore assoluto massimo diventa 1.
StandardScaler
L'idea di StandardScaler
deriva dalla statistica. Funziona sottraendo la media (per centrare intorno allo zero) e dividendo per la deviazione standard (per rendere la varianza uguale a 1).
Se non hai familiarità con media, deviazione standard e varianza, puoi consultare il nostro corso Learning Statistics with Python. Tuttavia, questa conoscenza non è obbligatoria per proseguire.
Esempio di codice con MinMaxScaler
. Gli altri scaler vengono applicati nello stesso modo.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
L'output non è dei più gradevoli poiché gli scaler trasformano i dati in un array numpy
, ma con le pipeline questo non rappresenta un problema.
È necessario scalare solo le colonne delle feature (la variabile X
). Non è necessario scalare la variabile target, poiché ciò complicherebbe il processo di trasformazione inversa.
Quale Scaler Utilizzare?
Uno StandardScaler
è più sensibile ai valori anomali, risultando quindi meno adatto come scaler predefinito. Se si preferisce un'alternativa a StandardScaler
, la scelta tra MinMaxScaler
e MaxAbsScaler
dipende dalle preferenze personali, ovvero se si desidera scalare i dati nell'intervallo [0,1] con MinMaxScaler
oppure in [-1,1] con MaxAbsScaler
.
1. Qual è lo scopo principale dell'utilizzo di MinMaxScaler
nella pre-elaborazione dei dati?
2. Perché potresti rivalutare l'utilizzo di StandardScaler
per il tuo dataset?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 3.13
Standardscaler, Minmaxscaler, Maxabsscaler
Scorri per mostrare il menu
Esistono tre approcci diffusi per la normalizzazione dei dati:
MinMaxScaler
: normalizza le caratteristiche in un intervallo [0, 1];MaxAbsScaler
: normalizza le caratteristiche in modo che il valore assoluto massimo sia 1 (quindi i dati sono garantiti nell'intervallo [-1, 1]);StandardScaler
: standardizza le caratteristiche rendendo la media uguale a 0 e la varianza uguale a 1.
Per illustrare il funzionamento degli scaler, si considerino le caratteristiche 'culmen_depth_mm'
e 'body_mass_g'
dal penguins dataset. Queste caratteristiche possono essere rappresentate graficamente per osservare le loro scale.
MinMaxScaler
Il MinMaxScaler
funziona sottraendo il valore minimo (per far partire i valori da zero) e poi dividendo per (x_max - x_min) per rendere il risultato minore o uguale a 1.
Ecco la gif che mostra come funziona il MinMaxScaler
:
MaxAbsScaler
Il MaxAbsScaler
funziona trovando il valore assoluto massimo e dividendo ciascun valore per esso. In questo modo il valore assoluto massimo diventa 1.
StandardScaler
L'idea di StandardScaler
deriva dalla statistica. Funziona sottraendo la media (per centrare intorno allo zero) e dividendo per la deviazione standard (per rendere la varianza uguale a 1).
Se non hai familiarità con media, deviazione standard e varianza, puoi consultare il nostro corso Learning Statistics with Python. Tuttavia, questa conoscenza non è obbligatoria per proseguire.
Esempio di codice con MinMaxScaler
. Gli altri scaler vengono applicati nello stesso modo.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
L'output non è dei più gradevoli poiché gli scaler trasformano i dati in un array numpy
, ma con le pipeline questo non rappresenta un problema.
È necessario scalare solo le colonne delle feature (la variabile X
). Non è necessario scalare la variabile target, poiché ciò complicherebbe il processo di trasformazione inversa.
Quale Scaler Utilizzare?
Uno StandardScaler
è più sensibile ai valori anomali, risultando quindi meno adatto come scaler predefinito. Se si preferisce un'alternativa a StandardScaler
, la scelta tra MinMaxScaler
e MaxAbsScaler
dipende dalle preferenze personali, ovvero se si desidera scalare i dati nell'intervallo [0,1] con MinMaxScaler
oppure in [-1,1] con MaxAbsScaler
.
1. Qual è lo scopo principale dell'utilizzo di MinMaxScaler
nella pre-elaborazione dei dati?
2. Perché potresti rivalutare l'utilizzo di StandardScaler
per il tuo dataset?
Grazie per i tuoi commenti!