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

bookTrasformazione ed Estrazione delle Feature

Molti dataset reali contengono variabili con distribuzioni asimmetriche, che possono ridurre l'efficacia dei modelli di machine learning. È possibile applicare trasformazioni matematiche per ridurre l'asimmetria e migliorare la qualità dei dati. Due metodi comuni sono:

  • Trasformazione logaritmica: riduce una forte asimmetria positiva applicando log(x);
  • Trasformazione della radice quadrata: modera livelli minori di asimmetria utilizzando sqrt(x).

Questi metodi aiutano a rendere le distribuzioni delle variabili più simili a una normale e migliorano le prestazioni del modello.

123456789101112131415161718192021222324252627282930
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
copy
Note
Definizione

L'estrazione delle caratteristiche è il processo di creazione di nuove variabili a partire dai dati grezzi per migliorare le prestazioni dei modelli di machine learning.

Aiuta rendendo le informazioni importanti più esplicite, riducendo il rumore e talvolta abbassando la dimensionalità dei dati. Un'estrazione efficace delle caratteristiche può portare a previsioni migliori e modelli più interpretabili.

1234567891011
import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
copy
question mark

Quale trasformazione sarebbe più appropriata per una variabile con forte asimmetria positiva e solo valori positivi?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3

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 why adding 1 to the log transformation is necessary?

What are some other common feature engineering techniques?

How does creating a new feature like family_size help improve model performance?

Awesome!

Completion rate improved to 8.33

bookTrasformazione ed Estrazione delle Feature

Scorri per mostrare il menu

Molti dataset reali contengono variabili con distribuzioni asimmetriche, che possono ridurre l'efficacia dei modelli di machine learning. È possibile applicare trasformazioni matematiche per ridurre l'asimmetria e migliorare la qualità dei dati. Due metodi comuni sono:

  • Trasformazione logaritmica: riduce una forte asimmetria positiva applicando log(x);
  • Trasformazione della radice quadrata: modera livelli minori di asimmetria utilizzando sqrt(x).

Questi metodi aiutano a rendere le distribuzioni delle variabili più simili a una normale e migliorano le prestazioni del modello.

123456789101112131415161718192021222324252627282930
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
copy
Note
Definizione

L'estrazione delle caratteristiche è il processo di creazione di nuove variabili a partire dai dati grezzi per migliorare le prestazioni dei modelli di machine learning.

Aiuta rendendo le informazioni importanti più esplicite, riducendo il rumore e talvolta abbassando la dimensionalità dei dati. Un'estrazione efficace delle caratteristiche può portare a previsioni migliori e modelli più interpretabili.

1234567891011
import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
copy
question mark

Quale trasformazione sarebbe più appropriata per una variabile con forte asimmetria positiva e solo valori positivi?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3
some-alt