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 pari a 0 e la varianza pari 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 rispettive 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 ottenere valori minori o uguali a 1.
Ecco la gif che mostra come funziona MinMaxScaler:
MaxAbsScaler
Il MaxAbsScaler funziona trovando il valore assoluto massimo e dividendo ciascun valore per esso. Questo garantisce che il valore assoluto massimo sia 1.
StandardScaler
L'idea di StandardScaler deriva dalla statistica. Funziona sottraendo la media (per centrare intorno a zero) e dividendo per la deviazione standard (per rendere la varianza uguale a 1).
Se non si comprendono media, deviazione standard e varianza, è possibile consultare il nostro corso Learning Statistics with Python. Tuttavia, questa conoscenza non è obbligatoria per proseguire.
Segue un 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.
È consigliabile 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
Fantastico!
Completion tasso migliorato a 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 pari a 0 e la varianza pari 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 rispettive 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 ottenere valori minori o uguali a 1.
Ecco la gif che mostra come funziona MinMaxScaler:
MaxAbsScaler
Il MaxAbsScaler funziona trovando il valore assoluto massimo e dividendo ciascun valore per esso. Questo garantisce che il valore assoluto massimo sia 1.
StandardScaler
L'idea di StandardScaler deriva dalla statistica. Funziona sottraendo la media (per centrare intorno a zero) e dividendo per la deviazione standard (per rendere la varianza uguale a 1).
Se non si comprendono media, deviazione standard e varianza, è possibile consultare il nostro corso Learning Statistics with Python. Tuttavia, questa conoscenza non è obbligatoria per proseguire.
Segue un 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.
È consigliabile 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!