Merkmaltransformation und -Extraktion
Viele reale Datensätze enthalten Merkmale mit schiefen Verteilungen, was die Effektivität von Machine-Learning-Modellen verringern kann. Mathematische Transformationen können angewendet werden, um die Schiefe zu reduzieren und die Datenqualität zu verbessern. Zwei gängige Methoden sind:
- Logarithmische Transformation: Reduziert starke positive Schiefe durch Anwendung von
log(x); - Quadratwurzel-Transformation: Mildert geringere Schiefegrade mit
sqrt(x).
Diese Methoden helfen, Merkmalsverteilungen normalähnlicher zu gestalten und die Modellleistung zu steigern.
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()
Merkmalextraktion ist der Prozess der Erstellung neuer Merkmale aus Rohdaten, um die Leistung von Machine-Learning-Modellen zu verbessern.
Es hilft, indem wichtige Informationen expliziter gemacht, Störgeräusche reduziert und manchmal die Dimensionalität der Daten verringert wird. Effektive Merkmalsextraktion kann zu besseren Vorhersagen und besser interpretierbaren Modellen führen.
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())
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 8.33
Merkmaltransformation und -Extraktion
Swipe um das Menü anzuzeigen
Viele reale Datensätze enthalten Merkmale mit schiefen Verteilungen, was die Effektivität von Machine-Learning-Modellen verringern kann. Mathematische Transformationen können angewendet werden, um die Schiefe zu reduzieren und die Datenqualität zu verbessern. Zwei gängige Methoden sind:
- Logarithmische Transformation: Reduziert starke positive Schiefe durch Anwendung von
log(x); - Quadratwurzel-Transformation: Mildert geringere Schiefegrade mit
sqrt(x).
Diese Methoden helfen, Merkmalsverteilungen normalähnlicher zu gestalten und die Modellleistung zu steigern.
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()
Merkmalextraktion ist der Prozess der Erstellung neuer Merkmale aus Rohdaten, um die Leistung von Machine-Learning-Modellen zu verbessern.
Es hilft, indem wichtige Informationen expliziter gemacht, Störgeräusche reduziert und manchmal die Dimensionalität der Daten verringert wird. Effektive Merkmalsextraktion kann zu besseren Vorhersagen und besser interpretierbaren Modellen führen.
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())
Danke für Ihr Feedback!