Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Scalatura e Normalizzazione | Tecniche di Trasformazione dei Dati
Preprocessing dei Dati e Feature Engineering

bookScalatura e Normalizzazione

Le caratteristiche numeriche nei dati spesso presentano scale molto diverse, il che può compromettere le prestazioni degli algoritmi di apprendimento automatico—soprattutto quelli che utilizzano calcoli di distanza o assumono distribuzioni normali. La scalatura garantisce che tutte le caratteristiche contribuiscano in modo equo all'addestramento del modello.

Le due principali tecniche di scalatura sono:

  • Normalizzazione: riscalare le caratteristiche in un intervallo fisso, solitamente tra 0 e 1;
  • Standardizzazione: trasformare le caratteristiche affinché abbiano una media di 0 e una deviazione standard di 1.

Ogni metodo modifica l'intervallo dei dati in modo diverso ed è più adatto a scenari specifici.

1234567891011121314151617181920212223242526272829
import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler # Load Titanic dataset from seaborn import seaborn as sns titanic = sns.load_dataset('titanic') # Select numerical features for scaling features = ['age', 'fare', 'sibsp', 'parch'] df = titanic[features].dropna() # Standardization scaler_standard = StandardScaler() df_standardized = pd.DataFrame( scaler_standard.fit_transform(df), columns=df.columns ) # Normalization scaler_minmax = MinMaxScaler() df_normalized = pd.DataFrame( scaler_minmax.fit_transform(df), columns=df.columns ) print("Standardized Data (first 5 rows):") print(df_standardized.head()) print("\nNormalized Data (first 5 rows):") print(df_normalized.head())
copy
Note
Quando utilizzare ciascun metodo di scalatura

La standardizzazione è preferibile quando i dati seguono una distribuzione gaussiana (normale), o quando gli algoritmi richiedono dati centrati, come linear regression, logistic regression o k-means clustering.

La normalizzazione è consigliata quando si desidera che tutte le caratteristiche abbiano la stessa scala, soprattutto per algoritmi che utilizzano metriche di distanza, come k-nearest neighbors o neural networks.

question mark

Quale metodo di scaling dovresti scegliere se le tue feature hanno intervalli molto diversi e stai utilizzando un classificatore k-nearest neighbors

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Suggested prompts:

Can you explain when to use normalization versus standardization?

What are the effects of scaling on different machine learning algorithms?

Can you show how to inverse transform the scaled data back to the original values?

Awesome!

Completion rate improved to 8.33

bookScalatura e Normalizzazione

Scorri per mostrare il menu

Le caratteristiche numeriche nei dati spesso presentano scale molto diverse, il che può compromettere le prestazioni degli algoritmi di apprendimento automatico—soprattutto quelli che utilizzano calcoli di distanza o assumono distribuzioni normali. La scalatura garantisce che tutte le caratteristiche contribuiscano in modo equo all'addestramento del modello.

Le due principali tecniche di scalatura sono:

  • Normalizzazione: riscalare le caratteristiche in un intervallo fisso, solitamente tra 0 e 1;
  • Standardizzazione: trasformare le caratteristiche affinché abbiano una media di 0 e una deviazione standard di 1.

Ogni metodo modifica l'intervallo dei dati in modo diverso ed è più adatto a scenari specifici.

1234567891011121314151617181920212223242526272829
import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler # Load Titanic dataset from seaborn import seaborn as sns titanic = sns.load_dataset('titanic') # Select numerical features for scaling features = ['age', 'fare', 'sibsp', 'parch'] df = titanic[features].dropna() # Standardization scaler_standard = StandardScaler() df_standardized = pd.DataFrame( scaler_standard.fit_transform(df), columns=df.columns ) # Normalization scaler_minmax = MinMaxScaler() df_normalized = pd.DataFrame( scaler_minmax.fit_transform(df), columns=df.columns ) print("Standardized Data (first 5 rows):") print(df_standardized.head()) print("\nNormalized Data (first 5 rows):") print(df_normalized.head())
copy
Note
Quando utilizzare ciascun metodo di scalatura

La standardizzazione è preferibile quando i dati seguono una distribuzione gaussiana (normale), o quando gli algoritmi richiedono dati centrati, come linear regression, logistic regression o k-means clustering.

La normalizzazione è consigliata quando si desidera che tutte le caratteristiche abbiano la stessa scala, soprattutto per algoritmi che utilizzano metriche di distanza, come k-nearest neighbors o neural networks.

question mark

Quale metodo di scaling dovresti scegliere se le tue feature hanno intervalli molto diversi e stai utilizzando un classificatore k-nearest neighbors

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1
some-alt