Sie kennen sicher das Sprichwort „Garbage in, Garbage out“. Dieses Sprichwort trifft tatsächlich auf das Trainieren von Machine-Learning-Modellen zu. Wenn wir Machine-Learning-Modelle mit irrelevanten Daten trainieren, helfen selbst die besten Machine-Learning-Algorithmen nicht viel. Umgekehrt kann die Verwendung gut entwickelter, aussagekräftiger Features sogar mit einem einfachen Machine-Learning-Algorithmus eine überlegene Leistung erzielen. Wie können wir also diese aussagekräftigen Features erstellen, die die Leistung unseres Modells maximieren? Die Antwort lautet Feature Engineering. Die Arbeit am Feature Engineering ist besonders wichtig, wenn mit traditionellen Machine-Learning-Algorithmen wie Regression, Entscheidungsbäumen, Support Vector Machines und anderen gearbeitet wird, die numerische Eingaben erfordern. Das Erstellen dieser numerischen Eingaben erfordert jedoch nicht nur Datenkenntnisse. Es ist ein Prozess, der Kreativität und Fachwissen erfordert und ebenso viel Kunst wie Wissenschaft beinhaltet.
Generell können wir das Feature Engineering in zwei Komponenten unterteilen: 1) Erstellen neuer Features und 2) Verarbeiten dieser Features, damit sie optimal mit dem betreffenden Maschinenalgorithmus funktionieren. In diesem Artikel werden wir diese beiden Komponenten des Feature Engineering für Querschnittsdatensätze, strukturierte Datensätze, die nicht auf NLP basieren, besprechen.
Das Sammeln von Rohdaten kann anstrengend sein, und am Ende dieser Aufgabe sind wir möglicherweise zu müde, um mehr Zeit und Energie in die Erstellung zusätzlicher Funktionen zu investieren. Aber hier müssen wir der Versuchung widerstehen, uns direkt in das Modelltraining zu stürzen. Ich verspreche Ihnen, dass es sich lohnen wird! An dieser Stelle sollten wir innehalten und uns fragen: „Wenn ich die Vorhersagen manuell auf der Grundlage meines Fachwissens treffen würde, welche Funktionen hätten mir geholfen, gute Arbeit zu leisten?“ Diese Frage kann Möglichkeiten eröffnen, neue aussagekräftige Funktionen zu erstellen, die unser Modell sonst möglicherweise übersehen hätte. Nachdem wir überlegt haben, von welchen zusätzlichen Funktionen wir profitieren könnten, können wir die folgenden Techniken nutzen, um neue Funktionen aus den Rohdaten zu erstellen.
Wie der Name schon sagt, hilft uns diese Technik, mehrere Datenpunkte zu kombinieren, um eine ganzheitlichere Ansicht zu erstellen. Normalerweise wenden wir Aggregationen auf kontinuierliche numerische Daten an, indem wir Standardfunktionen wie Anzahl, Summe, Durchschnitt, Minimum, Maximum, Perzentil, Standardabweichung und Variationskoeffizient verwenden. Jede Funktion kann unterschiedliche Informationselemente erfassen, und die beste Funktion hängt vom jeweiligen Anwendungsfall ab. Oft können wir Aggregationen über ein bestimmtes Zeit- oder Ereignisfenster anwenden, das im Kontext dieses Problems sinnvoll ist.
Nehmen wir ein Beispiel, bei dem wir vorhersagen möchten, ob eine bestimmte Kreditkartentransaktion betrügerisch ist. Für diesen Anwendungsfall können wir zweifellos transaktionsspezifische Funktionen verwenden, aber neben diesen Funktionen können wir auch von der Erstellung aggregierter Funktionen auf Kundenebene profitieren, wie beispielsweise:
Anzahl der Fälle, in denen der Kunde in den letzten fünf Jahren Opfer eines Betrugs wurde: Ein Kunde, der zuvor mehrmals Opfer eines Betrugs wurde, wird möglicherweise mit höherer Wahrscheinlichkeit erneut Opfer eines Betrugs. Daher kann die Verwendung dieser aggregierten Ansicht auf Kundenebene geeignete Vorhersagesignale liefern.
Median der letzten fünf Transaktionsbeträge: Wenn eine Kreditkarte kompromittiert wird, versuchen Betrüger häufig, mehrere Transaktionen mit geringem Wert durchzuführen, um die Karte zu testen. Eine einzelne Transaktion mit geringem Wert ist sehr häufig und muss kein Zeichen für Betrug sein, aber wenn wir viele solcher Transaktionen in kurzer Folge sehen, kann dies auf eine kompromittierte Kreditkarte hinweisen.
Bei vielen Arten von Problemen ist die Änderung eines festgelegten Musters ein wertvolles Signal für die Vorhersage oder Anomalieerkennung. Unterschiede und Verhältnisse sind effektive Techniken zur Darstellung von Änderungen in numerischen Merkmalen. Genau wie die Aggregation können wir diese Techniken im Kontext dieses Problems auch über ein sinnvolles Zeitfenster anwenden.
Beispiele:
Unterschied zwischen dem Prozentsatz neuer Händlertransaktionen in der letzten Stunde und dem Prozentsatz neuer Händlertransaktionen in den letzten 30 Tagen: Ein hoher Prozentsatz neuer Händlertransaktionen in schneller Folge könnte an sich schon auf ein Betrugsrisiko hinweisen, aber wenn wir sehen, dass sich dieses Verhalten im Vergleich zum historischen Verhalten des Kunden geändert hat, wird dies zu einem noch deutlicheren Signal.
Verhältnis der aktuellen Transaktionsanzahl zur durchschnittlichen täglichen Transaktionsanzahl der letzten 30 Tage: Wenn eine Kreditkarte kompromittiert wird, werden wahrscheinlich viele Transaktionen in einem kurzen Zeitfenster durchgeführt, was möglicherweise nicht mit der früheren Kreditkartennutzung übereinstimmt. Ein signifikant hohes Verhältnis der aktuellen Transaktionsanzahl zur durchschnittlichen täglichen Transaktionsanzahl der letzten 30 Tage kann auf betrügerische Nutzungsmuster hinweisen.
Mithilfe der Altersberechnungstechnik können wir Datums- oder Zeitstempelmerkmale in numerische Merkmale umwandeln, indem wir die Differenz zwischen zwei Zeitstempeln oder Daten berechnen. Wir können diese Technik auch verwenden, um bestimmte nicht numerische Merkmale in sinnvolle numerische Merkmale umzuwandeln, wenn die mit den Merkmalswerten verbundene Amtszeit ein wertvolles Signal für die Vorhersage sein kann.
Beispiele:
Indikator- oder Boolesche Merkmale haben binäre Werte {1, 0} oder {True, False}. Indikatormerkmale sind sehr verbreitet und werden verwendet, um verschiedene Arten von binären Informationen darzustellen. In einigen Fällen haben wir solche binären Merkmale möglicherweise bereits in numerischer Form, während sie in anderen Fällen nicht numerische Werte haben können. Um die nicht numerischen binären Merkmale für das Modelltraining zu verwenden, müssen wir sie nur numerischen Werten zuordnen.
Wenn wir über diese üblichen Vorkommen und Verwendungen von Indikatorfunktionen hinausblicken, können wir die Indikatorcodierung als Werkzeug nutzen, um einen Vergleich zwischen nicht numerischen Datenpunkten darzustellen. Dieses Attribut macht es besonders leistungsfähig, da es uns eine Möglichkeit bietet, die Änderungen in nicht numerischen Funktionen zu messen.
Beispiele:
Fehlgeschlagene Verifizierung während des letzten Login-Ereignisses: Ein kürzlich fehlgeschlagenes Login-Ereignis kann mit einem höheren Risiko betrügerischer Transaktionen verbunden sein. In diesem Fall können die Rohdaten für diese Funktion Ja- oder Nein-Werte enthalten; wir müssen diese Werte hier nur auf 1 oder 0 abbilden.
Änderung des Länderstandorts seit der letzten Transaktion: Eine Änderung des Länderstandorts kann auf eine kompromittierte Kreditkarte hinweisen. Hier wird durch die Erstellung eines Indikatormerkmals, das eine Änderung des nicht numerischen Merkmals „Länderstandort“ darstellt, diese Länderänderungsinformationen erfasst.
Diese Technik kann angewendet werden, wenn unsere Merkmalsdaten in kategorialer Form vorliegen, entweder numerisch oder nicht-numerisch. Die numerisch-kategoriale Form bezieht sich auf numerische Daten, die nicht-kontinuierliche oder nicht-messbezogene Daten enthalten, wie etwa geografische Regionscodes, Laden-IDs und andere derartige Datentypen. Eine Hot-Encoding-Technik kann solche Merkmale in einen Satz von Indikatormerkmalen umwandeln, die wir beim Trainieren von Modellen des maschinellen Lernens verwenden können. Durch Anwenden einer Hot-Encoding-Technik auf ein kategoriales Merkmal wird für jede Kategorie in dieser kategorialen Variable ein neues binäres Merkmal erstellt. Da die Anzahl der neuen Merkmale mit der Anzahl der Kategorien zunimmt, eignet sich diese Technik für Merkmale mit einer geringen Anzahl von Kategorien, insbesondere wenn wir einen kleineren Datensatz haben. Eine der Standardfaustregeln schlägt vor, diese Technik anzuwenden, wenn wir mindestens zehn Datensätze pro Kategorie haben.
Beispiele:
Diese Technik wird auf die gleiche Art von Merkmalen angewendet, auf die wir auch die One-Hot-Kodierung anwenden würden, hat aber einige Vor- und Nachteile gegenüber der One-Hot-Kodierung. Wenn die Anzahl der Kategorien hoch ist (hohe Kardinalität), wird durch die Verwendung der One-Hot-Kodierung die Anzahl der Merkmale unerwünscht erhöht, was zu einer Überanpassung des Modells führen kann. Die Zielkodierung kann in solchen Fällen eine effektive Technik sein, vorausgesetzt, wir arbeiten an einem überwachten Lernproblem. Es handelt sich um eine Technik, die jeden Kategoriewert dem erwarteten Wert des Ziels für diese Kategorie zuordnet. Wenn wir mit einem Regressionsproblem mit einem kontinuierlichen Ziel arbeiten, ordnet diese Berechnung die Kategorie dem mittleren Zielwert für diese Kategorie zu. Im Fall eines Klassifizierungsproblems mit einem binären Ziel ordnet die Zielkodierung die Kategorie der positiven Ereigniswahrscheinlichkeit dieser Kategorie zu. Im Gegensatz zur One-Hot-Kodierung hat diese Technik den Vorteil, dass die Anzahl der Merkmale nicht erhöht wird. Ein Nachteil dieser Technik ist, dass sie nur auf überwachte Lernprobleme angewendet werden kann. Die Anwendung dieser Technik kann das Modell auch anfällig für Überanpassung machen, insbesondere wenn die Anzahl der Beobachtungen in einigen Kategorien gering ist.
Beispiele:
Nachdem wir die neuen Features aus den Rohdaten erstellt haben, besteht der nächste Schritt darin, sie für eine optimale Modellleistung zu verarbeiten. Dies erreichen wir durch die Feature-Verarbeitung, wie im nächsten Abschnitt beschrieben.
Die Merkmalsverarbeitung bezieht sich auf eine Reihe von Datenverarbeitungsschritten, die sicherstellen, dass die Modelle des maschinellen Lernens wie beabsichtigt zu den Daten passen. Während einige dieser Verarbeitungsschritte bei der Verwendung bestimmter Algorithmen des maschinellen Lernens erforderlich sind, stellen andere sicher, dass wir eine gute Arbeitschemie zwischen den Merkmalen und dem betreffenden Algorithmus des maschinellen Lernens erreichen. In diesem Abschnitt besprechen wir einige gängige Schritte der Merkmalsverarbeitung und warum wir sie benötigen.
Mehrere Algorithmen des maschinellen Lernens, insbesondere parametrische wie Regressionsmodelle, werden stark von Ausreißern beeinflusst. Diese Algorithmen des maschinellen Lernens versuchen, Ausreißer zu berücksichtigen, was die Modellparameter stark beeinflusst und die Gesamtleistung beeinträchtigt. Um die Ausreißer zu behandeln, müssen wir sie zunächst identifizieren. Wir können Ausreißer für ein bestimmtes Merkmal erkennen, indem wir bestimmte Faustregeln anwenden, z. B. einen absoluten Wert, der größer ist als der Mittelwert plus drei Standardabweichungen, oder einen Wert außerhalb des nächsten Whisker-Werts (nächster Quartilwert plus 1,5-mal der Interquartilsabstandswert). Sobald wir die Ausreißer in einem bestimmten Merkmal identifiziert haben, können wir einige der folgenden Techniken verwenden, um Ausreißer zu behandeln:
Beachten Sie, dass es Techniken zum Erkennen von Beobachtungen gibt, bei denen es sich um multivariate Ausreißer handelt (Ausreißer in Bezug auf mehrere Merkmale), die jedoch komplexer sind und im Allgemeinen keinen großen Mehrwert für das Training von Modellen des maschinellen Lernens bieten. Beachten Sie auch, dass Ausreißer bei der Arbeit mit den meisten nichtparametrischen Modellen des maschinellen Lernens wie Support Vector Machines und baumbasierten Algorithmen wie Entscheidungsbäumen, Random Forests und XGBoost kein Problem darstellen.
Fehlende Daten kommen in realen Datensätzen sehr häufig vor. Die meisten herkömmlichen Algorithmen für maschinelles Lernen, mit Ausnahme einiger weniger wie XGBoost, lassen keine fehlenden Werte in Trainingsdatensätzen zu. Daher ist das Beheben fehlender Werte eine der Routineaufgaben bei der Modellierung maschinellen Lernens. Es gibt mehrere Techniken zum Beheben fehlender Werte. Bevor Sie jedoch eine Technik implementieren, ist es wichtig, die Ursache der fehlenden Daten zu verstehen oder zumindest zu wissen, ob die Daten zufällig fehlen. Wenn die Daten nicht zufällig fehlen, d. h. bestimmte Untergruppen mit größerer Wahrscheinlichkeit fehlende Daten aufweisen, kann es schwierig sein, Werte für diese zu imputieren, insbesondere wenn nur wenige oder keine Daten verfügbar sind. Wenn die Daten zufällig fehlen, können wir einige der unten beschriebenen gängigen Behandlungstechniken verwenden. Sie alle haben Vor- und Nachteile, und es liegt an uns, zu entscheiden, welche Methode am besten zu unserem Anwendungsfall passt.
Häufig haben die Features, die wir in Modellen des maschinellen Lernens verwenden, unterschiedliche Bereiche. Wenn wir sie ohne Skalierung verwenden, dominieren die Features mit großen absoluten Werten das Vorhersageergebnis. Um stattdessen jedem Feature eine faire Chance zu geben, zum Vorhersageergebnis beizutragen, müssen wir alle Features auf die gleiche Skala bringen. Die beiden gängigsten Skalierungstechniken sind:
Beachten Sie, dass baumbasierte Algorithmen wie Entscheidungsbäume, Random Forest, XGBoost und andere mit nicht skalierten Daten arbeiten können und bei Verwendung dieser Algorithmen keine Skalierung benötigen.
Heute verfügen wir über enorme Datenmengen und können eine umfangreiche Sammlung von Features aufbauen, um unsere Modelle zu trainieren. Für die meisten Algorithmen ist es gut, mehr Features zu haben, da sie mehr Möglichkeiten bieten, die Modellleistung zu verbessern. Dies gilt jedoch nicht für alle Algorithmen. Algorithmen, die auf Distanzmetriken basieren, leiden unter dem Fluch der Dimensionalität – wenn die Anzahl der Features erheblich zunimmt, wird der Distanzwert zwischen den beiden Beobachtungen bedeutungslos. Wenn wir also Algorithmen verwenden, die auf Distanzmetriken basieren, sollten wir sicherstellen, dass wir nicht zu viele Features verwenden. Wenn unser Datensatz viele Features hat und wir nicht wissen, welche wir behalten und welche wir verwerfen sollen, können wir Techniken wie die Hauptkomponentenanalyse (PCA) verwenden. PCA wandelt den Satz alter Features in einen Satz neuer Features um. Es erstellt neue Features so, dass das Feature mit den höchsten Eigenwerten die meisten Informationen aus den alten Features erfasst. Wir können dann nur die wichtigsten neuen Features behalten und die übrigen verwerfen.
Andere statistische Techniken, wie Assoziationsanalyse und Merkmalsauswahlalgorithmen, können bei überwachten Lernproblemen verwendet werden, um die Anzahl der Merkmale zu reduzieren. Allerdings erfassen sie im Allgemeinen nicht denselben Informationsumfang wie PCA mit derselben Anzahl von Merkmalen.
Dieser Schritt ist eine Ausnahme, da er nur für das Ziel und nicht für die Merkmale gilt. Außerdem haben die meisten Algorithmen des maschinellen Lernens keine Einschränkungen hinsichtlich der Verteilung des Ziels, aber bestimmte Algorithmen, wie die lineare Regression, erfordern, dass das Ziel normal verteilt ist. Die lineare Regression geht davon aus, dass die Fehlerwerte symmetrisch sind und sich für alle Datenpunkte um Null konzentrieren (genau wie die Form der Normalverteilung), und eine normal verteilte Zielvariable stellt sicher, dass diese Annahme erfüllt ist. Wir können die Verteilung unseres Ziels verstehen, indem wir ein Histogramm zeichnen. Statistische Tests wie der Shapiro-Wilk-Test geben uns Aufschluss über die Normalität, indem sie diese Hypothese testen. Falls unser Ziel nicht normal verteilt ist, können wir verschiedene Transformationen wie Log-Transformation, Quadrattransformation, Quadratwurzeltransformation und andere ausprobieren, um zu prüfen, welche Transformationen die Zielverteilung normalisieren. Es gibt auch eine Box-Cox-Transformation, die mehrere Parameterwerte ausprobiert, und wir können denjenigen auswählen, der die Verteilung unseres Ziels am besten in eine Normalverteilung transformiert.
Hinweis: Obwohl wir die Schritte der Merkmalsverarbeitung in beliebiger Reihenfolge in Merkmalen implementieren können, müssen wir die Reihenfolge ihrer Anwendung sorgfältig überdenken. Beispielsweise kann die Behandlung fehlender Werte mithilfe der Mittelwertsubstitution vor oder nach der Ausreißererkennung implementiert werden. Der für die Substitution verwendete Mittelwert kann jedoch unterschiedlich sein, je nachdem, ob wir die fehlenden Werte vor oder nach der Ausreißerbehandlung behandeln. Die in diesem Artikel beschriebene Merkmalsverarbeitungssequenz behandelt die Probleme in der Reihenfolge, in der sie sich auf die nachfolgenden Verarbeitungsschritte auswirken können. Daher sollte das Befolgen dieser Reihenfolge im Allgemeinen zur Lösung der meisten Probleme wirksam sein.
Wie in der Einleitung erwähnt, ist Feature Engineering eine Dimension des maschinellen Lernens, die es uns ermöglicht, die Leistung des Modells in außergewöhnlichem Maße zu steuern. Um das Potenzial von Feature Engineering voll auszuschöpfen, haben wir in diesem Artikel verschiedene Techniken kennengelernt, um neue Features zu erstellen und sie so zu verarbeiten, dass sie optimal mit Modellen des maschinellen Lernens funktionieren. Unabhängig davon, welche Prinzipien und Techniken des Feature Engineering aus diesem Artikel Sie verwenden möchten, ist die wichtige Botschaft hier, dass es beim maschinellen Lernen nicht nur darum geht, den Algorithmus zu bitten, die Muster herauszufinden. Es geht darum, dass wir den Algorithmus in die Lage versetzen, seine Arbeit effektiv zu erledigen, indem wir ihm die Art von Daten bereitstellen, die er benötigt.