Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Funktionstransformation och Extraktion | Datatransformationstekniker
Datapreprocessering och Feature Engineering

bookFunktionstransformation 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.

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
Definition

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.

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

Vilken transformation är mest lämplig för en variabel med stark positiv skevhet och endast positiva värden?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookFunktionstransformation 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.

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
Definition

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.

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

Vilken transformation är mest lämplig för en variabel med stark positiv skevhet och endast positiva värden?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
some-alt