Featuretransformation og -Ekstraktion
Mange virkelige datasæt indeholder funktioner med skæve fordelinger, hvilket kan reducere effektiviteten af maskinlæringsmodeller. Du kan anvende matematiske transformationer for at reducere skævhed og forbedre datakvaliteten. To almindelige metoder er:
- Logaritmisk transformation: reducerer stærk positiv skævhed ved at anvende
log(x); - Kvadratrodstransformation: modererer mindre grader af skævhed ved brug af
sqrt(x).
Disse metoder hjælper med at gøre feature-fordelinger mere normalfordelte og forbedrer modellens ydeevne.
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()
Feature extraction er processen med at skabe nye funktioner ud fra rådata for at forbedre ydeevnen af maskinlæringsmodeller.
Det hjælper ved at gøre vigtig information mere eksplicit, reducere støj og nogle gange sænke datadimensionaliteten. Effektiv feature-ekstraktion kan føre til bedre forudsigelser og mere fortolkelige modeller.
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())
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 8.33
Featuretransformation og -Ekstraktion
Stryg for at vise menuen
Mange virkelige datasæt indeholder funktioner med skæve fordelinger, hvilket kan reducere effektiviteten af maskinlæringsmodeller. Du kan anvende matematiske transformationer for at reducere skævhed og forbedre datakvaliteten. To almindelige metoder er:
- Logaritmisk transformation: reducerer stærk positiv skævhed ved at anvende
log(x); - Kvadratrodstransformation: modererer mindre grader af skævhed ved brug af
sqrt(x).
Disse metoder hjælper med at gøre feature-fordelinger mere normalfordelte og forbedrer modellens ydeevne.
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()
Feature extraction er processen med at skabe nye funktioner ud fra rådata for at forbedre ydeevnen af maskinlæringsmodeller.
Det hjælper ved at gøre vigtig information mere eksplicit, reducere støj og nogle gange sænke datadimensionaliteten. Effektiv feature-ekstraktion kan føre til bedre forudsigelser og mere fortolkelige modeller.
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())
Tak for dine kommentarer!