Feature Engineering: Von Rohdaten zum Trainingsset

Durch Feature Engineering lassen sich Daten für ein möglichst effektives Training von KI-Modellen aufbereiten. Dabei kommen verschiedene Techniken zum Einsatz, die sich mit der Erstellung und Modifizierung von Variablen (Features) beschäftigen. Ziel ist es, die individuell passende Datenstruktur für das geplante Lernverfahren zu schaffen. Somit ist Feature Engineering einer der wichtigsten Prozesse von Machine Learning und trägt entscheidend zur Qualität und Genauigkeit entsprechender Algorithmen bei.

Was ist Feature Engineering?

Feature Engineering ist ein Oberbegriff für Techniken, die auf die Vorbereitung von Trainingsdaten für KI-Modelle abzielen. Dabei soll eine mathematische Struktur aus Variablen entstehen, die dem Algorithmus die Datenverarbeitung erleichtert und einen effizienten Lernprozess ermöglicht. Es spielt keine Rolle, ob die Daten in Text, Bild oder einer anderen Form vorliegen. Nur die praktische Herangehensweise und die speziellen Techniken werden je nach Datentyp und Beschaffenheit des KI-Modells angepasst. Im Großen und Ganzen umfasst Feature Engineering das Erstellen, die Auswahl und die Modifizierung von geeigneten Variablen, die in diesem Zusammenhang Features genannt werden. Ihre Beschaffenheit, Struktur und Sinnhaftigkeit für das geplante Modell tragen maßgeblich zu dessen Qualität und dem Erfolg des Projekts bei. Viele Prozesse und Teilbereiche von Machine Learning laufen weitgehend automatisiert ab. Das trifft nicht auf Feature Engineering zu, denn der Vorgang erfordert ein hohes Maß an Expertise und Kreativität. Aus diesem Grund befassen sich damit üblicherweise erfahrene Data Engineers und Scientists.

data engineering

Deep Dive Features

Im Zusammenhang mit Machine Learning sind Features repräsentative Eigenschaften, Merkmale oder Variablen, die aus den Eingabedaten extrahiert und zur Vorhersage eines Ergebnisses oder einer Zielvariablen verwendet werden. Features sind somit ein wesentlicher Bestandteil von Machine Learning und dienen als Eingabe für Lernalgorithmen. Sie tauchen in verschiedenen Formen auf: Kontinuierlich beschreibt nicht endliche, metrische Werte. Diskret sind numerische, aber zählbare Werte. Ein kategorisches Feature umfasst Kategorien, die keine Rangfolge innehaben müssen. Als weiterer Typ gelten binäre Features. Letztlich lassen sich fast alle Eigenschaften eines Objektes auf diese Weise mathematisch codieren und für einen Algorithmus messbar machen.

Ein Beispiel: Um den Preis eines Autos zu bestimmen, kann man Features wie Marke, Modell, Baujahr, Farbe, Leistung und Ausstattung betrachten. Sie alle lassen sich, wie oben beschrieben, mathematisch ausdrücken und können einem Algorithmus Aufschluss über die Wertigkeit des Autos geben. Entscheidend ist, dass eben diese zur Preisermittlung notwendigen Features bestimmt und codiert wurden. In der Praxis müssen Lernalgorithmen allerdings meist mit einer deutlich größeren Zahl an Ausprägungen und Features umgehen.

model selection

Warum ist Feature Engineering wichtig für Machine Learning?

Machine Learning besteht zu großen Teilen aus angewandter Statistik und probabilistischen Vorhersagen. Aus diesem Grund muss man Informationen vor einem dafür notwendigen Lernverfahren in eine mathematisch erfassbare Form bringen. Erst dadurch wird der informative Gehalt der Daten algorithmisch lesbar. Feature Engineering umfasst viele Verarbeitungsschritte, die notwendig sind, um durch Features die dazu passende Struktur zu schaffen. Diese ist maßgeblich davon abhängig, was der Algorithmus lernen und später ausführen soll. Am Beispiel der Preisermittlung für Autos ist schnell erkennbar, welche Features notwendig sind. Geht es hingegen um komplexe Machine Learning Modelle für beispielsweise Bild- oder Texterkennung, ist es nicht mehr so einfach, die passenden Features zu bestimmen – und vor allem: die Daten entsprechend zu transformieren. Genau an dieser Stelle setzen Techniken wie Imputation, Skalierung oder Diskretisierung an. Bei der Wahl und Durchführung dieser Techniken ist viel Fingerspitzengefühl und eine individuelle Herangehensweise an jeden Einzelfall gefragt.

Nicht nur das Fehlen wichtiger und gut strukturierter Features, sondern auch die Berücksichtigung überflüssiger Informationen kann ein Modell stark schwächen. Dafür lässt sich hingegen durch ein punktgenaues Feature Engineering so manche Unzulänglichkeit des Algorithmus’ kompensieren. Besonders groß ist dieser Effekt bei Vorhersagemodellen, die probabilistische Entscheidungen treffen sollen – beispielsweise zur Klassifizierung von Objekten. In diesem Fall wird in der Regel mit Ergebnis- und Prädiktorvariablen gearbeitet, die mittels Feature Engineering entstehen.

Feature Engineering in 3 Schritten

Auch wenn Feature Engineering viele verschiedene Techniken umfasst, lässt sich der Prozess typischerweise in drei Phasen einteilen, die da wären:

  1. Datenaufbereitung

    In den meisten Fällen sind Rohdaten zunächst ungeeignet für die Feature Erstellung, da sie oft aus verschiedenen Quellen stammen und kein einheitliches Format haben. Genau das ist für Machine Learning in der Regel jedoch notwendig. Deshalb werden die Daten zunächst zusammengeführt, formatiert und standardisiert. Entsprechende Techniken umfassen die Vorverarbeitung, Bereinigung, das Profiling, die Transformation und die Validierung der Daten. Da dieser Prozess oftmals bereits relevante Informationen wie bestimmte Keywords offenbart, lassen sich auch schon erste Features extrahieren, die jedoch meist weiter bearbeitet werden müssen.

  2. Explorative Datenanalyse

    Als nächstes geht es darum, die Daten besser zu verstehen und wichtige Zusammenhänge zu erkennen, durch die sich weitere sinnvolle Features erstellen lassen. Dabei nutzen Data Scientists eine große Bandbreite an Visualisierungstools, die ihnen helfen, die beste statistische Herangehensweise und geeignete Techniken zur weiteren Bearbeitung der Daten zu ermitteln. Konkret werden diese oft in Histogrammen, Box-Plots oder Streudiagrammen aufbereitet, um entsprechende Hypothesen herzuleiten.

  3. Benchmarking

    In dieser Phase von Feature Engineering ist es wichtig, Standards für Metriken der Genauigkeit und Qualität zu setzen und auf alle Features anzuwenden. Dieser Schritt hat den größten Einfluss auf die spätere Performance des Machine Learning Modells. Zunächst wird es anhand der Daten mehrfach getestet, um die entsprechenden Features und Ausprägungen weiter zu optimieren. Das geschieht durch die Auswahl besonders relevanter Features, aber auch durch deren Transformation und Neuerstellung mithilfe von Kombinationstechniken. Prinzipiell erfolgt Feature Engineering nicht nur vor der Trainingsphase, sondern kann jederzeit erneut zur Optimierung des Modells eingesetzt werden.

data selection

Beliebte Techniken

Wie bereits angedeutet, beschäftigen sich die allermeisten Techniken, die sich als Feature Engineering bezeichnen lassen, mit der Extraktion, Transformation, Selektion und Kreation von Features. Hier sind einige konkrete Beispiele:

Imputation

Durch Imputation werden fehlende Werte bereinigt, da besonders bei Vorhersagemodellen ansonsten Probleme mit Nullwahrscheinlichkeiten auftreten können. Das Löschen der entsprechenden Datenteile wäre zwar eine mögliche Lösung, kann aber zum Verlust wertvoller Informationen führen. Stattdessen ersetzt man fehlende kategorische Werte meist durch die häufigste Ausprägung. Bei numerischen Lücken berechnet man hingegen das arithmetische Mittel für das Feature.

Kategoriale Codierung

Ein klassischer Fall von Feature Transformation. In der Regel sind numerische Werte besser für einen Algorithmus verständlich als kategorische. Aus diesem Grund werden entsprechende Ausprägungen oft zu Zahlen umcodiert. Beim sogenannten One Hot Encoding kommen ausschließlich Nullen und Einsen zur Geltung, ohne dass dadurch Informationen in den Daten verloren gehen. Ein zu häufiger Einsatz der Technik kann jedoch zu unnatürlich stark korrelierten Merkmalen führen.

model data engineering

Diskretisierung

Durch Diskretisierung lässt sich ein stetiges Feature in ein diskretes Feature umwandeln. Oftmals werden Werte dafür in sogenannte Bins sortiert. Dabei erfolgt eine Klassenbildung, indem die Werte der Größe nach aufsteigend in Intervalle eingeteilt werden. Diese lassen sich dann diskret beschreiben.

Skalierung

Diese Methode von Feature Engineering wird eingesetzt, wenn Algorithmen zu empfindlich auf gewisse Skalen mancher Daten reagieren. Bei der Min-Max-Skalierung werden Werte in den Bereich zwischen 0 und 1 skaliert und somit normalisiert. Dem Minimalwert wird die 0 zugewiesen und dem Maximalwert die 1. Varianzskalierung zielt hingegen darauf ab, für das entsprechende Feature einen Mittelwert von 0 und eine Varianz von 1 zu schaffen. Dafür wird von allen Datenpunkten der Mittelwert subtrahiert und das Ergebnis durch die Varianz der Verteilung geteilt. Durch solche Techniken lassen sich für verschiedenste Daten beliebige Wertebereiche schaffen, ohne dass Verhältnisse und wichtige Informationen verloren gehen – ein entscheidendes Grundprinzip von Feature Engineering.

Fazit

Für punktgenaues und zielgerichtetes Machine Learning führt kein Weg an Feature Engineering vorbei. Zu wichtig ist die passende Struktur von Daten, die in Form von Features für das Training von KI-Modellen aufbereitet werden. Die Wahl der eingesetzten Techniken hängt dabei maßgeblich von den Zielen und den geplanten Funktionsweisen des Algorithmus’ ab. Typischerweise umfasst Feature Engineering jedoch die Extraktion, Transformation, Selektion und Kreation von Features. Der grobe Ablauf lässt sich in Datenaufbereitung, explorative Datenanalyse und Benchmarking einteilen. Die konkreten Techniken von Feature Engineering umfassen überwiegend mathematische Umcodierungen, durch die jedes Feature in die passende Form zur algorithmischen Verarbeitung gebracht werden kann.

«
»
Avatar von Tim Filzinger

Neueste Artikel