Funktionstransformation och Extraktion
Många verkliga datamängder innehåller variabler med snedfördelade värden, vilket kan minska effektiviteten hos maskininlärningsmodeller. Matematiska transformationer kan tillämpas för att minska snedhet och förbättra datakvaliteten. Två vanliga metoder är:
- Logaritmisk transformation: minskar stark positiv snedhet genom att tillämpa
log(x); - Kvadratrotstransformation: modererar mindre grad av snedhet med hjälp av
sqrt(x).
Dessa metoder bidrar till att göra variabelfördelningar mer normalfördelade och förbättrar modellens prestanda.
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 är processen att skapa nya variabler från rådata för att förbättra prestandan hos maskininlärningsmodeller.
Det hjälper genom att göra viktig information mer explicit, minska brus och ibland sänka datans dimension. Effektiv feature extraction kan leda till bättre prediktioner och mer tolkbara 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())
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Funktionstransformation och Extraktion
Svep för att visa menyn
Många verkliga datamängder innehåller variabler med snedfördelade värden, vilket kan minska effektiviteten hos maskininlärningsmodeller. Matematiska transformationer kan tillämpas för att minska snedhet och förbättra datakvaliteten. Två vanliga metoder är:
- Logaritmisk transformation: minskar stark positiv snedhet genom att tillämpa
log(x); - Kvadratrotstransformation: modererar mindre grad av snedhet med hjälp av
sqrt(x).
Dessa metoder bidrar till att göra variabelfördelningar mer normalfördelade och förbättrar modellens prestanda.
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 är processen att skapa nya variabler från rådata för att förbättra prestandan hos maskininlärningsmodeller.
Det hjälper genom att göra viktig information mer explicit, minska brus och ibland sänka datans dimension. Effektiv feature extraction kan leda till bättre prediktioner och mer tolkbara 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())
Tack för dina kommentarer!