Direkt zum Inhalt

Feature Engineering in Machine Learning: Ein praktischer Leitfaden

Erlerne das Feature Engineering mit diesem praktischen Leitfaden. Lerne Techniken wie Kodierung, Skalierung und den Umgang mit fehlenden Werten in Python kennen.
Aktualisierte 20. März 2025  · 15 Min. Lesezeit

Beim Feature Engineering geht es darum, wichtige Merkmale auszuwählen oder zu erstellen, die die Leistung eines Modells verbessern. Unabhängig von deinem ML-Algorithmus wirst du dich bei der Datenaufbereitung wahrscheinlich auf Techniken des Feature Engineering verlassen.

In diesem Artikel werden wir das Feature Engineering und seine Methoden kennenlernen und verstehen, wie man sie anhand eines praktischen Beispiels zur Vorhersage von Hauspreisen anwendet. 

Was ist Feature Engineering beim maschinellen Lernen?

Ich erinnere mich, dass ich ein Modell entwickelt habe, um die Liefertreue bei einem Projekt an meinem Arbeitsplatz zu verbessern. Anstatt komplexe Ensemble-Modelle zu trainieren, haben wireinen einfachen Regressionsalgorithmus mit nur drei zusätzlichen Merkmalen aus den vorhandenen Daten entwickelt.

Allein durch diesen Ansatz verbesserte sich unsere Liefertreue von 48% auf 56%. Das ist eine große Verbesserung, wenn man bedenkt, dass es 10 Millionen Datensätze gibt. So groß ist der Unterschied, den technische Verfahren wie die Merkmalsextraktion machen können!

Einfach ausgedrückt, bedeutet Feature Engineering die Auswahl die richtigen Merkmale aus vorhandenen Daten.

Betrachte einen Wetterdatensatz mit Spalten für Temperatur, Ort, Monat, Jahr und Datum. Die Datumsspalte ist für die Erfassung von saisonalen Trends möglicherweise nicht besonders wertvoll, da die Monatsspalte diese Informationen bereits enthält. Durch das Entfernen der Datumsspalte kann die Dimensionalität des Datensatzes reduziert werden, ohne die Genauigkeit der Wettervorhersagen zu beeinträchtigen.

Werde ein ML-Wissenschaftler

Bilde dich in Python weiter, um ein/e Wissenschaftler/in für maschinelles Lernen zu werden.
Kostenloses Lernen beginnen

Arten von Merkmalen beim maschinellen Lernen

Bevor wir uns mit den verschiedenen Feature-Engineering-Techniken beschäftigen, sollten wir zunächst die verschiedenen Arten von Features verstehen.

Numerische Merkmale 

Wie der Name schon sagt, stellen numerische Merkmale Daten in Zahlen dar. Sie sind kontinuierliche quantitative Variablen. Beispiele sind Größe, Alter und Gehalt. 

Kategorische Merkmale

Eine kategoriale Spalte kann nur diskrete Merkmale enthalten. Das Geschlecht einer Person ist zum Beispiel eine kategorische Spalte, da es nur einige Geschlechtstypen geben kann. Der Geburtsmonat ist ein weiteres Beispiel, denn die Werte müssen zwischen Januar und Dezember liegen. 

Kategoriale Variablen werden weiter in binäre und nicht-binäre Typen unterteilt. Binäre Variablen haben zwei mögliche Kategorien, während nicht-binäre Merkmale mehrere Kategorien haben können. 

Text- und Zeitserienmerkmale 

Textuelle Spalten enthalten nur Textdaten. Beispiele sind Produktbewertungen oder Spalten mit Produktbeschreibungen in einem Einzelhandelsdatensatz. 

Zeitreihenmerkmale hingegen stellen zeitnahe Daten dar, z. B. wöchentliche Umsätze oder Aktienkursschwankungen über ein Jahr hinweg.

Merkmalstypen beim maschinellen Lernen

Bild vom Autor

Techniken der Merkmalstechnik

Das Feature-Engineering bietet verschiedene leistungsstarke Techniken zur Umwandlung von Rohspalten in erwünschte Merkmale. Hier besprechen wir einige prominente Beispiele. 

Umgang mit fehlenden Werten

Fehlende Werte können die Leistung des Modells beeinträchtigen, daher ist der richtige Umgang mit ihnen entscheidend. Es gibt zwei Hauptansätze:

  • Anrechnung: Unter Imputation versteht man das Auffüllen fehlender Werte anhand verfügbarer Informationen. Du kannst zum Beispiel den Mittelwert, den Modus und den Medianwert verwenden, um fehlende Werte zu ersetzen. 
  • Löschung: Diese Methode entfernt Zeilen mit fehlenden Werten und ist am besten geeignet, wenn die fehlenden Daten weniger als 10 % der Datensatzgröße ausmachen. 

Eine ausführliche Anleitung zum Umgang mit fehlenden Daten findest du in diesem Tutorial über Techniken zum Umgang mit fehlenden Daten oder in diesem Kurs über den Umgang mit fehlenden Daten in Python.

Umgang mit Ausreißern 

Ausreißer sind anormale Werte, die sich deutlich vom Rest der Datenpunkte unterscheiden. Wenn du zum Beispiel einen Gehaltsdatensatz hast, bei dem die meisten Beobachtungen zwischen 90 und 120 Tausend Dollar liegen, ist eine Gehaltszahl wie 400 Tausend Dollar oder 10 Tausend Dollar ein Ausreißer. 

  • Ersetzen: Du kannst Ausreißer durch eine statistische Zahl wie das Maximum oder Minimum der Spalte ersetzen.
  • Verwandlungen: Wende Transformationen wie Logarithmus oder Quadratwurzel an, um die Auswirkungen zu verringern. 
  • Robuste Modelle: Verwende Modelle, die weniger anfällig für Ausreißer sind. Entscheidungsbäume, Gradient Boosting und Ridge Regression sind weniger von Ausreißern betroffen. 
  • Löschen: Wenn keine der Methoden funktioniert, ist das Entfernen der Ausreißer aus dem Datensatz die letzte Option.

Kodierung kategorischer Variablen

Modelle des maschinellen Lernens können kategoriale Variablen nicht direkt verarbeiten, daher müssen sie in numerische Darstellungen umgewandelt werden. Im Folgenden werden einige beliebte Kodierungstechniken vorgestellt. 

  • One-Hot-Codierung: Jede Kategorie in einem kategorialen Merkmal wird als separate Spalte dargestellt, mit einem Wert von 1, wenn die Kategorie in der Stichprobe vorhanden ist, und 0 für alle anderen Spalten. Das folgende Beispiel erklärt dies.

Betrachte einen Datensatz mit dem folgenden kategorialen Merkmal:

Name 

Geschlecht

John 

Männlich

Rachel

Weiblich

Emma 

Weiblich

Mit der One-Hot-Codierung erstellen wir separate Spalten für jede mögliche Kategorie in dem Merkmal Gender:

Name

Weiblich

Männlich

John

0

1

Richale

1

0

Emma

1

0

Da John männlich ist, bekommt die Spalte "Männlich" ein 1, während die Spalte "Weiblich" 0 bleibt. Ebenso sind Rachel und Emma weiblich, also steht in der Spalte "Weiblich" 1 und in der Spalte "Männlich" 0.

Ein komplettes Tutorial zur One-Hot-Kodierung in Python findest du in diesem Tutorial zur One-Hot-Kodierung.

  • Kodierung des Labels: Bei der Label-Codierung wird jeder Kategorie eines kategorialen Merkmals ein eindeutiger numerischer Wert zugewiesen. Dieser Ansatz ist nützlich für ordinale Daten (bei denen die Kategorien eine sinnvolle Reihenfolge haben), kann aber bei nicht-ordinalen kategorialen Variablen zu Problemen führen, da das Modell die numerischen Werte fälschlicherweise als eine inhärente Rangfolge interpretieren könnte.

Betrachte einen Datensatz mit einer Spalte Location, die kategoriale Werte enthält:

Standort 

Kodierter Wert

New York 

1

Kalifornien 

2

Texas

3

Kalifornien

2

Texas

3

Jedem eindeutigen Standort wird ein eindeutiger numerischer Wert zugewiesen. Da Kalifornien (2) jedoch nicht von Natur aus "zwischen" New York (1) und Texas (3) liegt, kann die Verwendung der Label-Kodierung für nicht-ordinale Daten zu irreführenden Modellannahmen führen. In solchen Fällen wird oft eine Ein-Punkt-Kodierung bevorzugt, um zu vermeiden, dass eine unbeabsichtigte numerische Beziehung zwischen den Kategorien hergestellt wird.

  • Ordinale Kodierung: Die ordinale Kodierung ähnelt der Label-Kodierung, wird aber speziell dann verwendet, wenn kategoriale Werte eine sinnvolle Reihenfolge haben. Anstatt willkürliche Zahlenwerte zuzuweisen, werden die Kategorien auf der Grundlage ihrer Rangfolge zugeordnet. Dadurch wird sichergestellt, dass höhere Werte den höher eingestuften Kategorien entsprechen.

Betrachte eine Education level Spalte mit den folgenden Kategorien:

Bildungsniveau

Kodierter Wert

UG (Undergraduate)

1

PG (Postgraduate)

2

PhD

3

Da ein PhD ein höheres Bildungsniveau darstellt als ein PG, das wiederum höher ist als ein UG, spiegeln die zugewiesenen Zahlenwerte diese Rangfolge wider.

  • Zielkodierung: Ersetzt jeden kategorischen Wert durch den Mittelwert der entsprechenden Zielvariablenwerte. Die Zielvariable ist die abhängige Variable, die das Modell vorherzusagen versucht. Diese Technik ist besonders nützlich bei kategorialen Merkmalen mit hoher Kardinalität (d. h. mit vielen eindeutigen Werten), da sie dazu beiträgt, die Dimensionalität zu reduzieren und gleichzeitig die relevanten Informationen zu erhalten.

Betrachte einen Datensatz, bei dem Location ein kategoriales Merkmal ist und Target variable ein numerisches Ergebnis darstellt:

Standort

Zielvariable

New York 

2

Kalifornien 

3

Texas

5

Kalifornien

1

Texas

4

Um die Spalte Location zu kodieren, berechnen wir den Mittelwert der Target variable für jede einzelne Kategorie:

  • Kalifornien: (3 + 1) / 2 = 2
  • Texas: (5 + 4) / 2 = 4.5
  • New York: Nur ein Wert (2), also bleibt es bei 2

Standort

Kodierter Wert

New York 

2

Kalifornien 

2

Texas

4.5

Kalifornien

2

Texas

4.5

Wenn du nach einem umfassenderen Leitfaden für den Umgang mit kategorischen Daten suchst, findest du in diesem Tutorial zum Umgang mit kategorischen Daten weitere Informationen.

Merkmal Skalierung 

Die Skalierung von Merkmalen stellt sicher, dass numerische Merkmale innerhalb eines standardisierten Bereichs liegen und verhindert, dass einige Merkmale aufgrund ihrer größeren Werte den Lernprozess dominieren.

Modelle des maschinellen Lernens, die auf abstandsbasierten Berechnungen beruhen (z. B. lineare Regression, k-nearest neighbors und neuronale Netze), können beeinträchtigt werden, wenn die Merkmale sehr unterschiedliche Größenordnungen haben.

Nehmen wir zum Beispiel einen Arbeitnehmerdatensatz mit den folgenden Merkmalen:

  • Altersspanne von 20 bis 60
  • Das Einkommen reicht von 30.000 bis 150.000 $.

Da das Einkommen viel größere Werte als das Alter hat, könnte ein Modell dem Einkommen allein aufgrund seiner Größe mehr Bedeutung beimessen, nicht weil es tatsächlich relevanter ist.

Hier sind einige gängige Techniken:

  • Normalisierung (Min-Max-Skalierung): Diese Methode skaliert alle Merkmalswerte so, dass sie zwischen 0 und 1 liegen. Sie subtrahiert den Minimalwert der Spalte von jedem Datenpunkt und teilt ihn dann durch den Bereich dieser Spalte, der die Differenz zwischen dem Maximal- und dem Minimalwert ist. Die Formel sieht wie folgt aus:

Skalierter Wert =( Datenpunkt - min(Spalte))/(max(Spalte) - min(Spalte))

  • Standardisierung (Z-Score-Skalierung): Dadurch werden alle Merkmale so umgewandelt, dass sie einen Mittelwert von 0 und eine Standardabweichung von 1 haben. Die Formel lautet: Der Mittelwert einer Spalte wird von jedem Datenpunkt dieser Spalte abgezogen, und der Rest wird durch die Standardabweichung dieses Merkmals geteilt. 

Skalierter Wert =( Datenpunkt - Mittelwert(Spalte))/(std(Spalte))

Einen detaillierten Vergleich zwischen Normalisierung und Standardisierung findest du hier: Normalisierung vs. Standardisierung. Standardisierungsleitfaden.

Neue Funktionen erstellen

Das Erstellen neuer, aussagekräftiger Merkmale aus bestehenden Daten bietet logischere Einblicke in das Modell. 

Wenn du zum Beispiel in einem Datensatz zur Hauspreisvorhersage die Spalten length und breadth getrennt hast, kannst du ein neues Merkmal ableiten: area = length * breath price , das sich direkt auf die Zielvariable beziehen kann. Die Eingabe dieses area Merkmals in das Modell vereinfacht die Entdeckung versteckter Muster. 

Auswahl der Merkmale

Bei der Merkmalsauswahl werden nur relevante Merkmale berücksichtigt, indem unnötige Spalten entfernt werden. Die Konzentration auf die informativsten Daten hilft dabei, eine Überanpassung zu vermeiden, den Rechenaufwand zu verringern und die Modellleistung zu verbessern. Hier sind einige Techniken:

  • Filtermethoden: Diese Methode wählt wichtige Merkmale auf der Grundlage ihrer statistischen Eigenschaften aus. Mit einer Korrelations-Heatmap können wir zum Beispiel Merkmale entfernen, die dieselben Informationen enthalten. Andere Techniken sind der Chi-Quadrat-Test, die ANOVA und die Methoden des Informationsgewinns.
  • Wrapper-Methoden: Diese Methoden trainieren ein Vorhersagemodell iterativ mit verschiedenen Kombinationen von Merkmalsuntergruppen und die beste Untergruppe mit optimaler Modellleistung wird ausgewählt. Vorwärts- und Rückwärtsselektion sowie rekursive Eliminierungsmethoden fallen unter diese Kategorie. 

Feature Engineering in Python: Ein praktisches Beispiel

Feature Engineering lässt sich am besten durch praktische Umsetzung verstehen.

Die "Hauspreisvorhersage" ist ein riesiger, realistischer Datensatz mit 81 Spalten. Ich habe es wegen seiner vielfältigen Funktionen ausgewählt, die dir helfen können, die Techniken des Feature Engineering in der Praxis besser zu verstehen.

Die ersten Schritte:

  1. Lade den Datensatz von Kaggle herunter.
  2. Lade sie in einen Pandas DataFrame für die Analyse und das Feature Engineering.

Umgang mit kategorisch fehlenden Werten

Der folgende Code identifiziert kategoriale Spalten im Datensatz und ersetzt ihre fehlenden Werte durch die häufigste Kategorie:

import pandas as pd

# Load dataset (replace 'your_file.csv' with the actual file name)
df = pd.read_csv('your_file.csv')

# Select categorical columns
categorical_cols = df.select_dtypes(include=['object']).columns

# Replace missing values with the most frequent category (mode)
for col in categorical_cols:
    mode = df[col].mode()[0]  # Get the most common value
    df[col].fillna(mode, inplace=True)  # Fill missing values

Umgang mit fehlenden numerischen Werten

Fehlende numerische Werte werden durch den Mittelwert oder den Median ersetzt. Der Mittelwert ist eine beliebte Option für statistisch verteilte Daten, während der Median gut funktioniert, wenn die Spalte Ausreißer enthält. Wir werden also nach Ausreißern suchen und uns für eine Methode entscheiden. 

Um potenzielle Ausreißer zu visualisieren, können wir Boxplots verwenden, die helfen, Extremwerte zu identifizieren. Im Folgenden findest du eine Python-Implementierung zur Erkennung von Ausreißern in ausgewählten numerischen Spalten:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

features = ['LotFrontage', 'MasVnrArea', 'GarageYrBlt']  

# Plot box plots
df[features]=np.log(df[features])
df[features].boxplot(figsize=(8, 4))

plt.title('Box Plot for Outlier Detection')
plt.ylabel('Values')
plt.xticks(rotation=45)
plt.show()

Ausgabe:

Boxplot zur Erkennung von Ausreißern

Die obigen Boxplots zeigen Punkte, die außerhalb der Whisker liegen - diese werden als Ausreißer bezeichnet. Ersetzen wir also fehlende Werte durch den Median.

Code, um Nullen durch Medianwerte zu ersetzen:

import pandas as pd
# Select numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns
for col in numerical_columns:
    median = df[col].median()  
    df[col].fillna(median, inplace=True)  # Replace nulls with median

Neue Funktionen erstellen

Spalten wie YearBuilt, YearRemodAdd, GarageYrBlt und YrSold enthalten Jahre (z. B. 2001, 1976), die keinen direkten Einfluss auf die Zielvariable haben. Diese absoluten Jahreswerte haben zwar keinen direkten Einfluss auf die Hauspreise, aber wir können mehr nützliche Erkenntnisse gewinnen, wenn wir berechnen, wie alt das Haus oder die Renovierung zum Zeitpunkt des Verkaufs ist.

Anstatt YearBuilt zu verwenden, können wir zum Beispiel ein neues Merkmal erstellen: House Age=YrSold-YearBuilt

Code, um diese neuen Funktionen zu erstellen:

# Get columns that contain 'Yr' or 'Year'
year_columns = [feature for feature in numerical_columns if 'Yr' in feature or 'Year' in feature]

# Convert year values into age-related features
for col in year_columns:
    df[col] = df['YrSold'] - df[col]

Feature Transformation

Beim maschinellen Lernen können sich schiefe numerische Merkmale negativ auf die Modellleistung auswirken, vor allem bei Modellen, die von einer Normalverteilung ausgehen (z. B. bei der linearen Regression). Um dies zu korrigieren, wenden wir eine Log-Transformation an.

Bevor wir eine Log-Transformation anwenden, müssen wir schiefe Merkmale identifizieren. Wir schließen jedoch Spalten mit Nullen aus, da der Logarithmus von Null undefiniert ist.

Hier ist eine Implementierung in Python, um schiefe Spalten zu erkennen:

import pandas as pd

# Get numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns

# Identify columns containing zeros
numerical_0s = df.loc[:, (df == 0).any()].select_dtypes(include=['number']).columns

# Remove columns that contain zeros from consideration
numerical_columns = numerical_columns.difference(numerical_0s)

# Calculate skewness for the remaining numerical columns
skewness = df[numerical_columns].skew()

# Set threshold for skewness (e.g., absolute value > 1 indicates high skewness)
skewed_columns = skewness[abs(skewness) > 1]

# Display skewed columns
print("Skewed Columns:")
print(skewed_columns)

Ausgabe:

Wir werden die Lognormalverteilung verwenden, um diese fünf schiefen Spalten in eine Gaußverteilungumzuwandeln:

import numpy as np

# The list of highly skewed features identified earlier
skew_features = ['LotFrontage', 'LotArea', '1stFlrSF', 'GrLivArea', 'SalePrice']

# Apply log transformation to each skewed feature
for col in skew_features:
    df[col] = np.log(df[col])

Wandle kategorische Merkmale in numerische Werte um

Wir haben bereits verschiedene Kodierungstechniken besprochen; in diesem Beispiel werden wir die Zielkodierung anwenden.

# Select categorical variables
categorical_columns = df.select_dtypes(include=['object', 'category']).columns

# Apply target encoding
for col in categorical_columns:
    # Compute mean SalePrice for each category
    labels_ordered = df.groupby([col])['SalePrice'].mean().sort_values().index
    
    # Assign numerical values based on target variable mean
    labels_ordered = {x: i for i, x in enumerate(labels_ordered, 0)}
    
    # Map encoded values back to the dataframe
    df[col] = df[col].map(labels_ordered)

Im obigen Code ist die Zielvariable SalePrice, also haben wir die Daten nach jeder kategorialen Spalte gruppiert und den Mittelwert SalePrice für jede Gruppe berechnet. Diese Mittelwerte wurden dann den entsprechenden kategorialen Werten in dieser Spalte zugeordnet.

Unser Datensatz ist jetzt bereit für maschinelles Lernen! 

Wenn du dein Verständnis von Konzepten des überwachten Lernens vertiefen möchtest und wissen willst, wie Modelle konstruierte Merkmale nutzen, ist dieser Kurs zum überwachten Lernen mit Scikit-Learn einehervorragende Ressource.

Tools und Bibliotheken für das Feature Engineering

In diesem Abschnitt stellen wir dir die am häufigsten verwendeten Python-Bibliotheken und Automatisierungstools für das Feature Engineering vor. 

Pandas

Pandas ist das am häufigsten verwendete Python-Framework zur Verarbeitung strukturierter Daten. Es führt viele Schritte der Merkmalstechnik durch, wie z. B. Transformation, Datenaggregation und Merkmalsextraktion. Pandas machen auch die Datenbereinigung und -manipulation einfach.

Wenn du Pandas noch nicht kennst, ist dieser Kurs zur Datenbearbeitung mit Pandas ein guter Startpunkt.

Scikit-Learn

Scikit-learn ist eine leistungsstarke Bibliothek für maschinelles Lernen mit verschiedenen Werkzeugen für das Feature Engineering. Sie enthält Methoden wie OneHotEncoder und LabelEncoder, um kategorische in numerische Variablen umzuwandeln. Es bietet auch Methoden zur Skalierung von Merkmalen wie StandardScaler und Minmaxscaler

Feature-Engine

Feature-engine ist eine offeneurce Python-Bibliothek, die eine Vielzahl von Transformatoren zur Vereinfachung des Feature-Engineering bietet. Diese Transformatoren sind spezialisierte Werkzeuge für bestimmte Aufgaben, z. B. für die Imputation fehlender Daten, die Behandlung von Ausreißern, die Auswahl von Merkmalen und die Diskretisierung. Diese Transformatoren sind vollständig mit scikit-learn kompatibel und können als Eingabeparameter für das Tuning der Hyperparameter übergeben werden.

Automatisierte Tools für das Feature Engineering

  • Featuretools: Featuretools ist eine Open-Source-Bibliothek zur Automatisierung des Feature Engineering. Das Framework wird in erster Linie verwendet, um neue Features aus einer relationalen Datenbank zu erstellen. Er basiert auf dem DFS-Algorithmus (Deep Feature Synthesis), der neue Merkmale auf der Grundlage von Transformations- und Aggregationsoperationen erstellt. 
  • TSFresh: TSFresh, bekannt als Time Series Feature Extraction based on Scalable Hypothesis Tests, wurde speziell entwickelt, um aussagekräftige Merkmale aus Zeitreihendaten zu extrahieren. Die Bibliothek führt Hypothesentests durch, um statistisch signifikante Merkmale für die Vorhersage auszuwählen. 
  • Autofeat: Die Autofeat-Bibliotheky automatisiert die Auswahl, Erstellung und Umwandlung von Merkmalen, um die Genauigkeit von linearen Modellen zu verbessern. Zum Beispiel bietet die Bibliothek anstelle von fit() eine fit_transform() Methode, die gleichzeitig Anpassungs- und Transformationsoperationen an den Eingabedaten durchführt. Außerdem sind FeatureSelector und AutoFeatLight für die Auswahl und Skalierung von Merkmalen verfügbar.

Best Practices für Feature Engineering

Um Feature Engineering effektiv umzusetzen, solltest du dich an diesen Best Practices orientieren.

Kenne deine Daten

Wenn du die Bedeutung und Wichtigkeit jedes Merkmals verstehst, kannst du Techniken wie die Merkmalsauswahl oder -extraktion viel einfacher durchführen. Ich schlage vor, du recherchierst deine Daten und das relevante Fachwissen für ein effektives Feature Engineering.

Durchführen einer explorativen Datenanalyse (EDA)

Nutze Python-Bibliotheken wie Pandas und Matplotlib, um umfassende explorative Datenanalysen durchzuführen,z. B. statistische Informationen, Visualisierungen und Korrelationen, um Muster und potenzielle Beziehungen in den Daten zu finden.

Interaktionsfunktionen erstellen

Bei der Erstellung von Interaktionsmerkmalen geht es darum, Beziehungen zwischen bestehenden Merkmalen zu erkennen und neue Merkmale abzuleiten. Bei der Vorhersage von Hauspreisen zum Beispiel zeigt die Berechnung des Alters eines Hauses durch Subtraktion des Baujahrs vom aktuellen Jahr Trends auf, wie z. B. sinkende Hauspreise im Laufe der Zeit. 

Wähle dein Modell im Voraus

Verschiedene Machine-Learning-Modelle erfordern unterschiedliche Schritte der Merkmalstechnik. Zum Beispiel profitieren Modelle wie lineare oder multiple Regression, SVM und KNN oft von der Standardisierung der Merkmale, aber diese Technik hilft baumbasierten Modellen nicht. 

Wenn du dich also schon im Voraus für dein Modell entscheidest, kannst du eine effektive Feature-Engineering-Pipeline für deinen Anwendungsfall aufbauen. 

Fazit

Das Feature-Engineering ist ein wesentlicher Bestandteil der Entwicklung von Machine-Learning-Lösungen und ermöglicht es dir, Features auf die effizienteste Weise zu nutzen. Dieser Prozess wird von Datenwissenschaftlern oder ML-Ingenieuren durchgeführt, wenn sie mit einem beliebigen Datensatz arbeiten. Wenn du ein Datenexperte bist oder einer werden willst, wird dir das Beherrschen aller in diesem Artikel genannten Techniken helfen, deine Karriere voranzutreiben!

Wenn du diese Techniken genauer kennenlernen möchtest, schau dir die DataCamp-Kurseüber Feature Engineering für maschinelles Lernen und Feature Engineering für NLPan. Es gibt auch einen Kurs über Feature Engineering für R-Programmierer.

Fähigkeiten im Bereich Machine Learning aufbauen

Bringe deine Fähigkeiten im maschinellen Lernen auf Produktionsniveau.

FAQs

Wie unterscheidet sich das Feature Engineering von der Feature Selection?

Beim Feature-Engineering werden neue Features erstellt oder bestehende umgewandelt, um die Modellleistung zu verbessern. Bei der Merkmalsauswahl hingegen werden die relevantesten Merkmale ausgewählt und irrelevante oder redundante Merkmale verworfen, um eine Überanpassung zu verhindern und die Komplexität des Modells zu reduzieren.

Kann das Feature Engineering automatisiert werden?

Ja! Automatisierte Feature-Engineering-Tools wie FeatureTools, AutoML-Bibliotheken (z. B. Auto-sklearn, H2O.ai) und die AutoML-Tabellen von Google können Features automatisch erstellen und umwandeln und so Zeit und Mühe sparen. Für die Interpretation und die Auswahl der besten Merkmale ist das Fachwissen jedoch nach wie vor entscheidend.

Wie beeinflusst das Feature Engineering die Interpretierbarkeit des Modells?

Feature Engineering kann die Interpretierbarkeit verbessern oder verringern, je nachdem, welche Techniken verwendet werden. Zum Beispiel:

  • Die Erstellung aussagekräftiger Merkmale (z. B. "Hausalter" statt "Baujahr") verbessert die Interpretierbarkeit.
  • Die Anwendung von Transformationen wie PCA (Principal Component Analysis) kann dazu führen, dass die Merkmale weniger interpretierbar sind, aber die Modellleistung verbessert wird.

Hängt das Feature Engineering von der Art des maschinellen Lernmodells ab?

Ja! Verschiedene Modelle profitieren von unterschiedlichen Techniken der Merkmalstechnik:

  • Lineare Modelle (z. B. lineare Regression, logistische Regression) - Erfordern eine Skalierung der Merkmale und profitieren oft von polynomialen Merkmalstransformationen.
  • Baumbasierte Modelle (z. B. Entscheidungsbäume, Random Forest, XGBoost) - eignen sich gut für nicht skalierte Daten und profitieren oft mehr von der Merkmalsauswahl als von Transformationen.
  • Deep-Learning-Modelle - Bevorzugen rohe Merkmale, und Transformationen wie Einbettungsebenen helfen bei kategorischen Daten.

Was ist Feature Crossing und wann sollte ich es nutzen?

Beim Feature-Crossing werden zwei oder mehr Features miteinander kombiniert, um ein neues Feature zu erstellen, das die Wechselwirkungen zwischen ihnen erfasst. Beispiel:

  • Anstatt "Alter" und "Einkommen" getrennt zu verwenden, solltest du ein "Verhältnis zwischen Einkommen und Alter" erstellen, um die finanzielle Stabilität in den verschiedenen Altersgruppen zu erfassen.
  • Verwende Feature-Crossing, wenn sich Beziehungen zwischen Variablen nichtlinear auf die Zielvariable auswirken.

Wie kann ich beurteilen, ob eine Funktion die Leistung des Modells verbessert?

Du kannst die Wichtigkeit von Merkmalen bewerten:

  • Permutationsbedeutung - Misst, wie sich das Mischen eines Merkmals auf die Modellgenauigkeit auswirkt.
  • Merkmalsbedeutung in baumbasierten Modellen - Viele Modelle wie Random Forests bieten integrierte Merkmalsbedeutungsbewertungen.
  • Kreuzvalidierung - Vergleiche die Modellgenauigkeit mit und ohne ein Merkmal.

Was ist Interaction Feature Engineering?

Bei der Entwicklung von Interaktionsmerkmalen werden neue Merkmale auf der Grundlage von Interaktionen zwischen bestehenden Merkmalen erstellt. Das kann Folgendes beinhalten:

  • Multiplikation (Produktmerkmale): Kombination von zwei Merkmalen (z. B. "Größe × Gewicht" für den BMI).
  • Verhältnisse: Ein Merkmal durch ein anderes dividieren (z. B. "Preis pro Quadratfuß").
  • Polynomielle Merkmale: Erhöhen von Merkmalen auf eine Potenz (z. B. "Alter²" für nicht lineare Beziehungen).

Wie gehst du mit kategorialen Variablen mit hoher Kardinalität um?

Für kategoriale Variablen mit vielen eindeutigen Werten (z. B. Postleitzahlen, Benutzer-IDs):

  • Zielkodierung: Ersetze die Kategorien durch den Mittelwert der Zielvariablen.
  • Einbettungsschichten (für Deep Learning): Lerne niederdimensionale Darstellungen von Kategorien.
  • Hashing Encoding: Weisen Sie den Kategorien mithilfe einer Hash-Funktion Eimer zu.

Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana ist freiberufliche Tech-Autorin und hat einen vierjährigen Abschluss in Informatik. Das Schreiben über verschiedene Themen wie Data Science, Cloud Computing, Entwicklung, Programmierung, Sicherheit und viele andere ist für sie selbstverständlich. Sie liebt klassische Literatur und erkundet gerne neue Reiseziele.

Themen

Lerne mehr über maschinelles Lernen mit diesen Kursen!

Kurs

Preprocessing for Machine Learning in Python

4 hr
54.6K
Learn how to clean and prepare your data for machine learning!
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Mehr anzeigenMehr anzeigen