Trasformazione 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.
123456789101112131415161718192021222324252627282930import 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()
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.
1234567891011import 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())
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
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
Trasformazione 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.
123456789101112131415161718192021222324252627282930import 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()
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.
1234567891011import 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())
Grazie per i tuoi commenti!