Gewinne:
- Fähigkeit, aussagekräftige abgeleitete Merkmale mit Domänenwissen zu erzeugen und kategoriale Kategorien mit geeigneten Methoden (One-Hot, Label, Target) zu kodieren.
- Fähigkeit, numerische Variablen je nach Modelltyp (Standardisierung, Normalisierung) zu skalieren und unnötige oder unvollständige Skalierung zu vermeiden
- Möglichkeit, Funktionslecks zu vermeiden, indem alle Transformationen nach der Trainings-/Testaufteilung und nur aus dem Training gelernt werden
Beim maschinellen Lernen gibt es ein altes Sprichwort: „Angewandtes maschinelles Lernen ist im Wesentlichen Feature Engineering.“ Denn der Erfolg eines Modells hängt oft von den Eingaben ab, die Sie dem Modell geben, und nicht davon, welchen Algorithmus Sie wählen. Feature Engineering ist die Kunst, aus Rohdaten aussagekräftige Signale zu erzeugen, aus denen das Modell lernen kann. Künstliche Intelligenz ist in dieser Phase eine reichhaltige Ideenquelle: Wenn man fragt, „welche Funktionen aus diesen Daten erzeugt werden können“, werden Dutzende Vorschläge aufgeführt. Einige dieser Vorschläge können jedoch wertvoll sein, andere möglicherweise nutzlos und andere möglicherweise gefährlich (Leck). Es ist Ihre Aufgabe, das zu klären.
Warum Feature-Engineering
Rohdaten gelangen selten in ihrer besten Form in das Modell. Während die Spalte „Geburtsdatum“ allein bedeutungslos ist, ist der daraus generierte Wert „Alter“ ein starkes Signal. Sie können Attribute wie „Wochentag“, „Tag/Nacht“, „Ist es ein Feiertag“ aus dem „Bestellzeitstempel“ extrahieren. Sie können zwei Spalten kombinieren, um ein Verhältnis („Schulden-Einkommens-Verhältnis“) zu erstellen. Hier übersetzt Feature Engineering Domänenwissen in mathematische Signale; Und genau deshalb ist es die Bühne, die die meiste menschliche Intelligenz erfordert.
Kategoriale Variablen in Zahlen umwandeln: Codierung
Modelle arbeiten im Allgemeinen mit Zahlen, nicht mit Text. Das Umwandeln kategorialer Variablen (z. B. Stadt, Farbe, Produkttyp) in Zahlen wird als Kodierung bezeichnet. Drei gängige Methoden:
One-Hot-Codierung: Öffnet eine separate Spalte mit einem Wert von 0/1 für jede Kategorie. Für „Stadt“ werden die Spalten Istanbul, Ankara, Izmir gebildet; Wenn ein Kunde aus Istanbul kommt, ist nur diese Spalte 1. Ideal, wenn die Anzahl der Kategorien gering ist; Wenn es zu viele Kategorien gibt, werden Hunderte von Spalten erzeugt (dies wird als „Größenexplosion“ bezeichnet).
Etikettenkodierung: Gibt jeder Kategorie eine Nummer (Istanbul=0, Ankara=1). Es ist einfach, aber es kann dem Modell versehentlich eine Sequenz beibringen (wie Ankara > Istanbul); Daher wird es in ungeordneten Kategorien mit Vorsicht verwendet.
Zielkodierung: Ersetzt jede Kategorie durch den Durchschnitt der Zielvariablen in dieser Kategorie. Es ist sehr leistungsstark, aber auch die gefährlichste Leckquelle: Wenn man das Ziel der Testdaten berücksichtigt, sieht das Modell die Zukunft. Er sollte nur aus Trainingsdaten und sorgfältig (im Rahmen der Kreuzvalidierung) berechnet werden.
Skalierung: Große Zahlen überfordern das Modell nicht
Einige Modelle (entfernungsbasierte Modelle, lineare Modelle, neuronale Netze) reagieren empfindlich auf die Skalierung der Variablen. Wenn „Einkommen“ (0-500.000) und „Alter“ (0-100) in das gleiche Muster fallen, dominiert möglicherweise das Einkommen einfach deshalb, weil es größer ist. Die Skalierung behebt dieses Problem. Zwei gängige Methoden: Standardisierung (wandelt jeden Wert in „wie viele Standardabweichungen vom Mittelwert entfernt“) und Normalisierung (Min-Max-Normalisierung – komprimiert Werte in den Bereich 0-1) um. Baumbasierte Modelle (Entscheidungsbäume, Random Forest) sind skalierungsunabhängig und erfordern keine Skalierung.
Achtung: Skalierungs- und Codierungsparameter (Mittelwert, Standardabweichung, Kategorie-Mittelwert-Zuordnung) sollten nur aus den Trainingsdaten berechnet werden, dann sollte das Gleiche auf die Testdaten angewendet werden. Das Einbeziehen von Testdaten stellt ein Leck dar und lässt Ihr Modell besser aussehen, als es tatsächlich ist.
Das Herzstück des Leaks im Feature Engineering
Die Feature-Generierung ist der häufigste Grund für Datenlecks. Zwei typische Fehler: Zeitleck – Erstellung einer Funktion, die zukünftige Informationen einschließt (einschließlich Tage nach dem Prognosetag bei der Berechnung des „Durchschnitts der letzten 30 Tage“). Statistikverlust – Berechnen eines Merkmals (Skalierungsdurchschnitt, Zielkodierungswert) aus allen Daten vor der Trainings-/Testaufteilung. Regel: Lernen Sie jede Transformation zuerst, nachdem Sie die Trainings-/Testaufteilung durchgeführt haben, und nur anhand der Trainingsdaten. Der sicherste Weg, dies regelmäßig zu tun, ist die Verwendung einer Pipeline – einer Struktur, die alle Transformationen in einer einzigen Kette sammelt und nach der Aufteilung anwendet.
Methode
wofür
Gefahr einer Leckage
Hinweis
One-Hot-Kodierung
Variabel mit wenigen Kategorien
niedrig
Explodiert die Größe in mehreren Kategorien
Etikettencodierung
Sortierte Kategorie
niedrig
„Außer Ordnung“ lehrt falsche Reihenfolge
Zielkodierung
Mehrere Kategorien, starkes Signal
sehr hoch
Nur aus der Ausbildung, im Lebenslauf
Standardisierung
Linear-/Distanzmodelle
mittel
Der Parameter hängt nur von der Bildung ab
Zeitfensterfunktion
Zeitreihen
hoch
Fügen Sie die Zukunft hinzu
drei Mini-Koffer
Fall 1 – Wertvolles Eigentum. Ein Kreditteam hat die Funktion „Schulden-Einkommens-Verhältnis“ aus den Rohspalten „Monatliches Einkommen“ und „Monatliche Schuldenzahlung“ generiert. Dieses einzelne abgeleitete Merkmal erhöhte die Modellgenauigkeit von 71 % auf 79 %; denn es war der Zinssatz und nicht das absolute Einkommen, der das Risiko wirklich bestimmte. Lektion: Durch Domänenwissen generierte Kennzahlen sind starke Signale.
Fall 2 – Zielkodierungsleck. Ein Team wandelte die „Postleitzahl“ in eine Zahl mit der Zielkodierung um (die durchschnittliche Abwanderungsrate in diesem Bereich), tat dies jedoch vor der Aufteilung anhand aller Daten. Beim Testsatz lieferte das Modell eine Leistung von 94 %, in der Produktion sank die Leistung auf 68 %. 6 Wochen Mühe verschwendet. Lektion: Die Zielcodierung erfolgt sorgfältig und nur im Rahmen des Trainings.
Fall 3 – Skalierendes Vergessen. Ein Analyst hat den Umsatz (0–400.000) und das Kundenalter (18–75) in ein entfernungsbasiertes Modell ohne Skalierung eingespeist. Das Modell berücksichtigte fast ausschließlich das Einkommen und unterdrückte den Alterseffekt. Als die Skalierung hinzugefügt wurde, gewann die Segmentierung an Bedeutung. Lektion: Die Skalierung wird in Distanz-/linearen Modellen nicht vernachlässigt.
Vier kopierbare Vorlagen
1) Generierung von Feature-Ideen (Eliminierung liegt bei Ihnen):
Ihre Rolle: Feature-Engineering-Assistent. Meine df-Spalten: Geburtsdatum, Bestellzeit (Zeitstempel), Einkommen_tl, Schulden_tl, Stadt, Produktkategorie. Ziel: „Wird der Kredit zurückgezahlt“ (0/1). Schlagen Sie 15 Funktionen vor, die aus diesen Spalten generiert werden können. Geben Sie jeweils das Leckagerisiko (niedrig/mittel/hoch) an. Markieren Sie deutlich diejenigen, die zukünftige Informationen enthalten.
2) Sichere Codierung (Post-Split):
Schreiben Sie Code, der „city“ und „product_category“ One-Hot-codiert. WICHTIG: Passen Sie die Codierung nur an die Trainingsdaten an und transformieren Sie dann die Testdaten (mit sklearn OneHotEncoder). Erklären Sie, wie Sie in der Bildung mit der unsichtbaren Kategorie (handle_unknown) umgehen.
3) Leckagefreie Konvertierung mit Pipeline:
Sklearn-Pipeline einrichten: StandardScaler auf numerische Spalten anwenden, OneHotEncoder auf kategoriale Spalten, am Ende einen Klassifikator hinzufügen. Stellen Sie sicher, dass alle Transformationen NACH der Zug-/Testaufteilung und nur aus dem Training gelernt werden. Erklären Sie den Code und warum er leckagefrei ist.
4) Zeitfensterfunktion (Leckagekontrolle):
Generieren Sie das Attribut „Anzahl der Bestellungen in den letzten 30 Tagen“ für jeden Kunden, schließen Sie jedoch NIEMALS Daten nach dem Prognosetag ein. Erklären Sie Zeile für Zeile, dass der Code nicht in die Zukunft blickt. Ich werde die Spalte mit dem Referenzdatum bereitstellen.
Schwache Eingabeaufforderung / Starke Eingabeaufforderung
Schwache Eingabeaufforderung:
Fügen Sie diesen Daten gute Eigenschaften hinzu.
„Gut“ ist undefiniert, das Ziel ist unklar, es gibt keine Leckagekontrolle. KI generiert zufällige, möglicherweise undichte Funktionen.
Kraftvolle Aufforderung:
Ihre Rolle: Feature Engineer. Ziel: „Abwanderung in 30 Tagen“ (0/1), geschätztes Referenzdatum: save_date. Es gibt einen Transaktionsverlauf in df. Aufgabe: Generieren Sie 8 Features und beantworten Sie für JEDES die Frage „Habe ich diese Informationen zum Zeitpunkt der Vorhersage?“. Hinzufügen des Datums nach dem Referenzdatum in Zeitfensterfunktionen. Schreiben Sie den Code auf Pipeline-kompatible Weise, um ihn nach dem Trainings-/Testabschnitt auszuführen.
Dabei werden Ziel, Referenzzeit und Leckagekontrolle von Anfang an festgelegt.
Häufige Fehler
- Lernen der Transformation aus allen Daten vor der Division. Wenn der Skalierungs-/Kodierungsparameter die Testdaten sieht, kommt es zu Lecks.
- Unachtsamer Einsatz der Zielkodierung. Es ist die leistungsfähigste, aber auch die undichteste Methode; nur aus dem Training, in der Kreuzvalidierung.
- Hinzufügen der Zukunft mit einer Zeitfensterfunktion. Wenn die Berechnung „letzte 30 Tage“ nach dem Prognosetag eingegeben wird, sieht das Modell die Zukunft.
- Unnötige Skalierung im Baummodell und unvollständige Skalierung im linearen Modell. Skalierungsentscheidungen werden je nach Modelltyp getroffen.
- AI fügt jeden Funktionsvorschlag ohne Frage hinzu. Vorschläge können nutzlose und undichte Funktionen enthalten.
Tipp: Schreiben Sie für jedes von Ihnen generierte Feature eine einzelne Frage auf: „Kann ich diesen Wert mit den Informationen berechnen, die mir zum Zeitpunkt der Vorhersage vorliegen?“ Wenn die Antwort nicht eindeutig „Ja“ lautet, nutzen Sie die Funktion nicht. Diese einzige Disziplin beseitigt die meisten funktionsbezogenen Lecks.
Zusammenfassend
Feature Engineering ist die Kunst, aus Rohdaten aussagekräftige Signale zu generieren und entscheidet oft mehr über den Erfolg des Modells als der Algorithmus. Die grundlegenden Werkzeuge sind die Kodierung kategorialer Werte (One-Hot, Label, Target), die Skalierung numerischer Werte (Standardisierung, Normalisierung) und die Erstellung abgeleiteter Merkmale mit Domänenwissen. Diese Phase ist aber auch der Kern des Leaks: Alle Transformationen müssen nach der Trainings-/Testaufteilung und nur aus den Trainingsdaten gelernt werden. KI bringt viele Ideen hervor; Es ist das menschliche Urteilsvermögen, das das Wertvolle vom Gefährlichen unterscheidet.
Anwendungsaufgabe
Wählen Sie eine Zielvariable und entwerfen Sie mindestens fünf abgeleitete Merkmale aus den vorhandenen Spalten. Beantworten Sie für jeden von ihnen die Frage „Bin ich zum Zeitpunkt der Vorhersage verfügbar“ schriftlich und streichen Sie mindestens eine davon als „hohes Leckagerisiko“ aus. Anschließend codieren Sie die sicheren Funktionen in einer Pipeline, die nach der Partitionierung implementiert werden sollen.
Checkliste
- [ ] Habe ich alle Transformationen nach der Zug-/Testaufteilung angewendet?
- [ ] Habe ich Skalierungs-/Kodierungsparameter nur durch das Training gelernt?
- [ ] Habe ich für jedes Feature die Frage „Habe ich es zum Zeitpunkt der Vorhersage?“ beantwortet?
- [ ] Habe ich bei risikoreichen Methoden wie der Zielkodierung besondere Vorsicht walten lassen?
- [ ] Habe ich mich für eine angemessene Skalierung für den Modelltyp (Baum/Linear) entschieden?