Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara StandardScaler, MinMaxScaler, MaxAbsScaler | Preprocessing Dei Dati con Scikit-Learn
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Introduzione al Machine Learning con Python

bookStandardScaler, 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).

Note
Nota

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.

12345678910
import 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)
copy

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.

Note
Nota

È 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?

question mark

Qual è lo scopo principale dell'utilizzo di MinMaxScaler nella pre-elaborazione dei dati?

Select the correct answer

question mark

Perché potresti rivalutare l'utilizzo di StandardScaler per il tuo dataset?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 10

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookStandardScaler, 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).

Note
Nota

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.

12345678910
import 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)
copy

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.

Note
Nota

È 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?

question mark

Qual è lo scopo principale dell'utilizzo di MinMaxScaler nella pre-elaborazione dei dati?

Select the correct answer

question mark

Perché potresti rivalutare l'utilizzo di StandardScaler per il tuo dataset?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 10
some-alt