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
Introduzione al Machine Learning con Python

Standardscaler, Minmaxscaler, Maxabsscaler

Scorri per mostrare il menu

Esistono tre approcci popolari per la normalizzazione dei dati:

  • MinMaxScaler: ridimensiona le caratteristiche in un intervallo [0, 1];
  • MaxAbsScaler: ridimensiona 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 come funzionano gli 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.

nessuna normalizzazione

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.

MinMax
MinMaxScaler

Ecco la gif che mostra come funziona MinMaxScaler:

MinMaxScaling

MaxAbsScaler

Il MaxAbsScaler funziona trovando il valore assoluto massimo e dividendo ciascun valore per esso. Questo garantisce che il valore assoluto massimo sia 1.

MaxAbs
MaxAbsScaler
MaxAbsScaling

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 conosci il significato di media, deviazione standard e varianza, puoi consultare il nostro corso Learning Statistics with Python. Tuttavia, questa conoscenza non è obbligatoria per proseguire.

Formula StandardScaler
StandardScaler
StandardScaling

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)

L'output non è dei più leggibili poiché gli scaler trasformano i dati in un array numpy, ma con le pipeline questo non sarà un problema.

Note
Nota

È 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, rendendolo 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 voler riconsiderare l'utilizzo di StandardScaler per il tuo dataset?

question mark

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

Seleziona la risposta corretta

question mark

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

Seleziona la risposta corretta

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

Sezione 2. Capitolo 10
some-alt