Feature Engineering: Erklärung, Methoden und Beispiele

Als Feature Engineering bezeichnet man die Vorbereitung von Daten für die Verarbeitung in Machine Learning Algorithmen. Dabei ist Feature Engineering mitunter der wichtigste Teil im gesamten Machine Learning Prozess: Nur anhand hochqualitativer Features mit großem Informationsgehalt kann ein Modell mit hohem Erfolg trainiert werden. In diesem Artikel möchten wir Feature Engineering vorstellen, Methoden und Prozesse darstellen und eine Abgrenzung zu anderen Begriffen wie Feature Selection und Feature Extraction treffen.

Inhaltsverzeichnis

Was ist Feature Engineering und wofür benötigt man es? Eine Definition

Als Feature Engineering werden alle Prozesse bezeichnet, bei denen Rohdaten so aufbereitet werden, dass sie direkt von Machine Learning Algorithmen verarbeitet werden können. Die Idee ist, dass man durch Feature Engineering eine bessere Ausgangslage für das spätere Trainieren eines Machine Learning Modells schafft, indem man relevante, aussagekräftige und korrekte Attribute mitliefert.

Die Herausforderung beim Feature Engineering ist es, einerseits keine unnötige Daten weiterzuverarbeiten, andererseits aber auch keine Informationen zu verlieren (Information loss). Ersteres ist relevant durch steigenden Anforderungen an Daten und Infrastruktur (Curse of Dimensionality), zweiteres fördert die Gefahr, die “wahren Gründe” für die Zielvariablen versehentlich auszuschließen.

Insgesamt ist Feature Engineering ein sehr wichtiger Teil in jedem datenbasierten Projekt und fällt in die Kategorie “Data Preparation”. Als Nachfolgeschritt werden entweder aus den kreierten Features bestimmte für den Algorithmus ausgewählt oder man nutzt Algorithmen die diese Feature Selection direkt eingebaut haben (automated Feature Selection).

Methoden und Prozesse im Feature Engineering

Fachwissen einsetzen um optimale Features zu generieren

Bei allen technischen Methoden um passende Features zu engineeren hilft eine Sache immer unterstützend: Fachwissen aus der Domäne bzw. dem Business. Fachwissen hat den Vorteil, vorhandene Attribute gut einschätzen zu können bezüglich Wichtigkeit, erwarteter Datenqualität und Aussagekraft. Daher ist eine der wichtigen Regeln: Mit Fachwissen ist sowohl Qualität als auch Effizienz im Feature Engineering höher.

So gibt es zum Beispiel oft unscheinbare Features, die allerdings zentral zur Unterscheidung von Kunden beitragen. Oft sind dies gewisse Umsatzgrenzen, Einkaufshäufigkeiten, bestimmte Produktkategorien oder ähnliches, was einen sehr großen Unterschied für das Business macht, aber rein anhand der Datenbasis nicht unbedingt erkenntlich ist.

Zusätzliche Datenquellen anbinden

Auch dieser Aspekt ist formell gesehen kein direktes Feature Engineering, zählt für uns aber zum Prozess: Die Identifikation und Anbindung von zusätzlichen Datenquellen. Spricht man im Gedanken des CRISP-DM Prozesses, würde dieser Aspekt eher in “Data Understanding” fallen statt in “Data Preparation”. Dennoch ist er absolut zentral für ein gutes Ergebnis im Machine Learning. Meist sind die einfach zu erreichenden, offensichtlichen Datenquellen nicht unbedingt die wichtigsten, sondern erst durch Miteinbezug von externen Datenquellen wird ein verlässliches Ergebnis erreicht. 

Wenn man einen Data Scientist nach zusätzlichen Datenquellen fragt, gibt es meist eine erste Antwort: Wetterdaten! Dieser Holzhammer wird immer in Predictive Modelling mitgeführt, da doch sehr viele Produkte saisonale Einflüsse haben und es somit oft eine ausschlaggebende Rolle spielen kann.

Attribute in aussagekräftige Features transformieren

Eine der häufigsten Operation im Feature Engineering ist die Transformation von Features in aussagekräftige Werte. Dabei wird ein vorhandenes Attribut genutzt um es in einen sinnvolleren Wert zu interpretieren. In den einfachsten Fällen sind dies Rechenoperationen oder auch IF-ELSE Bedingungen, die basierend auf dem Inhalt in eine Kategorie einordnen.

Ein übliches Beispiel ist die Transformation eines Datums in die seitdem vergangenen Tage. Dies kann entweder an einem fixen Datum ausgerichtet werden oder am Ausführungszeitpunkt der Data Pipeline.

Interaktionen zwischen mehreren Attributen

Eine der grundlegendsten Methoden im Feature Engineering ist die Berechnung von Interaktionen (interaction features). Einfach gesagt heißt das, dass eine Kombination aus zwei oder mehreren Features berechnet wird, um einen inhaltlichen Mehrwert zu schaffen. 

Dabei gelten alle grundlegenden Rechenoperationen (Multiplikation, Division, Summen, Abstraktionen) als Möglichkeit, eine Interaktion zu erstellen. In jedem Fall gilt es auch immer zu überprüfen, ob ein interaktives Feature einen Mehrwert gegenüber den Rohattributen bietet.

Ein klassisches Beispiel für ein Interaktionsfeature das durch Feature Engineering generiert wird ist die Berechnung von Customer Lifetime Value (CLTV). Dabei werden im einfachsten Fall die Anzahl an Bestellungen eines Kunden mit dem Bestellwert multipliziert. Das neu entstandene Feature bezeichnet damit den erreichten Gesamtumsatz mit einem Kunden statt die isolierten Attribute.

Dummy Variablen definieren und hinzufügen

Dummy Coding oder Dummy Variables nennt man Features, die Kategorien oder Text ersetzen, damit der Input für Machine Learning Algorithmen verarbeitbar ist. Dies kann durch binäres Coding (0 oder 1) oder auch eine Distanzmetrik realisiert werden. Doch achtung: Bei manchen Algorithmen (z.B. Clustering) hat eine Dummy Variable durch ihren Split plötzlich eine höhere Gewichtung, da jedes Feature generell gleichgewichtet werden.

Als einfaches Beispiel kann man Kundendaten anführen, in denen der Wohnort angegeben ist. Nun kann man dadurch eine Dummy Variable generieren, ob die Person in einer Stadt oder eher im ländlichen Raum wohnt.

Ungenutzte, unnötige und redundante Attribute entfernen

Nach vielen Transformationen, Erstellung von neuen Features und ähnlichem gilt es vor der Nutzung der Daten noch aufzuräumen. Dazu werden alle ungenutzten, unnötigen und redundanten Attribute entfernt, um einen finalen Datensatz zu erhalten. Arbeitet man hierbei in einem Data Lake speichert man optimalerweise jedes entstandene Datenset (Rohdaten, alle Features, aufbereitete Daten) als distillierte Version zu speichern und entsprechend der Data Governance zu dokumentieren.

Typische Features zur Entfernung sind Identifier, Features die im Falle einer Operationalisierung nicht verfügbar sind oder hoch korrelative Features. 

Begriffsdefinition Feature Engineering

Feature Engineering vs. Data Wrangling: Was ist der Unterschied?

Feature Engineering bezeichnet einen bestimmten Teilschritt, der nach dem eigentlichen Data Wrangling kommt. Data Wrangling bezeichnet die gesamte Verarbeitung und Vorbereitung von Daten für nachfolgende Schritte, während Feature Engineering sich ganz spezifisch auf die Extraktion und Definition von Features für Machine Learning bezieht.

Feature Engineering vs. Feature Selection: Was ist der Unterschied?

Feature Engineering bereitet die Datensätze auf und transformiert die Daten in Features, während Feature Selection dann potentiell ein Subset dieser Features für das Training des Modells auswählt. Das Ziel ist es, die Anforderungen an Daten und Ressourcen (Curse of Dimensionality) zu reduzieren und irrelevante Features zu exkludieren. Es gibt sowohl manuelle als auch automatische (supervised und unsupervised) Methoden um diese Selektion durchzuführen.

Feature Engineering vs. Feature Extraction: Was ist der Unterschied?

Feature Extraction verarbeitet die Attribute, die durch Feature Engineering entstanden sind und kreiert neue Features daraus. Dabei zielt auch Feature Extraction auf die Reduktion der Computational Complexity ab, aber statt einfach Features zu extrahieren wie Feature Selection, versucht es alle Information in eine Kombination von neuen Features zu transformieren.

Feature Engineering vs. PCA: Was ist der Unterschied?

Principle Component Analysis (PCA) ist eine (unsupervised) Methode um Feature Extraction durchzuführen.

Weitere Informationen

Feature Engineering in python

Ob pandas oder pyspark: Feature Engineering ist ein Standardprozess in python. Hier eine vierteilige Video-Serie für einen praktischen Kurs:

Feature Engineering in R

Was panda für python ist, ist dplyr für R. Auch hier ein Video-Tutorial:

Buch zu Feature Engineering & Selection

Wer ausführliche, weiterführende Informationen zum Thema Feature Engineering & Selection sucht, dem sei das Buch “Feature Engineering and Selection: A Practical Approach for Predictive Models” von Max Kuhn ans Herz gelegt. Max arbeitet seit 20 Jahren im Bereich prädiktiver Modellierung und ist Mitglied des Teams rund um R-Studio.

In seinem Buch geht er ausführlich auf die Konstruktion von Features ein und zeigt in mehreren Kapiteln die verschiedenen Methoden und Vorteile der Feature Selection Algorithmen auf. Neben dem umfangreichen Informationsgehalt hat uns vor allem die einfache, sehr praktische Schreibweise des Buches sehr beeindruckt.