paint-brush
Feature Engineering für maschinelles Lernenvon@sumitmakashir
847 Lesungen
847 Lesungen

Feature Engineering für maschinelles Lernen

von Sumit Makashir15m2024/05/15
Read on Terminal Reader

Zu lang; Lesen

Feature Engineering ist entscheidend, um die Leistung von Machine-Learning-Modellen zu maximieren. Durch das Erstellen und Verarbeiten aussagekräftiger Features können selbst einfache Algorithmen hervorragende Ergebnisse erzielen. Zu den wichtigsten Techniken gehören Aggregation, Differenzen und Verhältnisse, Alterskodierung, Indikatorkodierung, One-Hot-Kodierung und Zielkodierung. Zu einer effektiven Feature-Verarbeitung gehören die Behandlung von Ausreißern, der Umgang mit fehlenden Werten, Skalierung, Dimensionsreduzierung und die Umwandlung von Zielen in eine Normalverteilung.
featured image - Feature Engineering für maschinelles Lernen
Sumit Makashir HackerNoon profile picture
0-item


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.


Erstellen neuer Funktionen

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.


1. Aggregation

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:

  1. 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.

  2. 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.


Das obere Diagramm zeigt die einzelnen Transaktionsbeträge. Wir können erkennen, dass isolierte Transaktionen mit geringem Wert nicht ungewöhnlich sind und keinen Betrug anzeigen. Mehrere aufeinanderfolgende Transaktionen mit geringem Wert sind jedoch ein Zeichen für Betrug. Das untere Diagramm zeigt einen gleitenden Median der letzten fünf Transaktionsbeträge und gibt nur dann einen niedrigen Wert zurück, wenn ein Muster mehrerer aufeinanderfolgender Transaktionen mit geringem Wert vorliegt. In diesem Fall ermöglicht die untere aggregierte Ansicht die Unterscheidung zwischen legitimen Transaktionen mit geringem Wert und betrügerischen Transaktionen mit geringem Wert anhand des Transaktionsbetrags als Merkmal.



2. Unterschiede und Verhältnisse

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:

  1. 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.

  2. 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.


Aus der obigen Tabelle können wir ersehen, dass eine hohe Transaktionsanzahl an einem bestimmten Tag allein nicht unbedingt ein Hinweis auf anormales Transaktionsverhalten sein muss. Im Gegensatz dazu kann eine verhältnisbasierte Funktion den Vergleich zwischen dem aktuellen Transaktionsverhalten des Kunden und seinem früheren Transaktionsverhalten erleichtern und somit Anomalien effektiver erfassen.

3. Alterskodierung

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:

  1. Tage seit der letzten Nutzung der Kreditkarte: Eine plötzliche Transaktion mit einer Kreditkarte, die lange Zeit inaktiv war, kann mit einem hohen Betrugsrisiko verbunden sein. Wir können dieses Merkmal berechnen, indem wir die Zeitdifferenz zwischen dem Datum seit der letzten Nutzung der Kreditkarte und dem aktuellen Transaktionsdatum berücksichtigen.
  2. Tage seit der ersten Nutzung des Geräts des Kunden: Wenn wir feststellen, dass eine Transaktion von einem neuen Gerät stammt, ist sie wahrscheinlich riskanter als eine Transaktion von einem Gerät, das der Kunde schon länger nutzt. Wir können eine Funktion erstellen, die das Alter des Geräts als Differenz zwischen dem Datum seit der ersten Nutzung des Geräts durch den Kunden und dem aktuellen Transaktionsdatum angibt.

Die obigen Tabellen zeigen ein Beispiel für die Alterskodierung. Hier haben wir ein neues numerisches Feature „Tage seit der ersten Nutzung des Transaktionsgeräts“ als Differenz in Tagen zwischen dem Datum der ersten Nutzung des Geräts des Kunden und dem aktuellen Transaktionsdatum erstellt.


4. Indikatorkodierung

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:

  1. 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.

  2. Ä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.


Die obigen Tabellen zeigen ein Beispiel für die Indikatorcodierung. Hier haben wir eine neue numerische Funktion „Länderänderung gegenüber vorheriger Transaktion“ erstellt, indem wir das aktuelle Transaktionsland eines Kunden mit dem Land seiner vorherigen Transaktion verglichen haben.


5. One-Hot-Kodierung

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:

  1. Kaufkategorie der Transaktion: Bestimmte Arten von Kaufkategorien können mit einem höheren Betrugsrisiko verbunden sein. Da es sich bei den Kaufkategorienamen um Textdaten handelt, können wir die One-Hot-Encoding-Technik anwenden, um dieses Merkmal in einen Satz numerischer Indikatormerkmale umzuwandeln. Wenn es zehn verschiedene Kaufkategorienamen gibt, erstellt One-Hot-Encoding zehn neue Indikatormerkmale, eines für jeden Kaufkategorienamen.
  2. Gerätetyp: Eine Online-Transaktion kann über verschiedene Gerätetypen erfolgen, z. B. iPhone, Android-Telefon, Windows-PC und Mac. Einige dieser Geräte sind anfälliger für Malware oder für Betrüger leichter zugänglich und können daher mit einem höheren Betrugsrisiko verbunden sein. Um Gerätetypinformationen in numerischer Form einzuschließen, können wir One-Hot-Encoding auf den Gerätetyp anwenden, wodurch für jeden Gerätetyp eine neue Indikatorfunktion erstellt wird.

Die obigen Tabellen zeigen ein Beispiel für One-Hot-Kodierung. Hier haben wir eine Reihe neuer numerischer Indikatorfunktionen erstellt, indem wir die One-Hot-Kodierungstechnik auf die nicht numerische kategorische Funktion „Gerätetyp“ angewendet haben.


6. Zielkodierung

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:

  1. Händlername: Transaktionen, die gegen bestimmte Händler getätigt werden, könnten auf betrügerische Aktivitäten hinweisen. Es könnte Tausende solcher Händler geben, von denen jeder ein anderes Risiko für betrügerische Transaktionen birgt. Die Anwendung von One-Hot-Encoding auf ein Feature, das Händlernamen enthält, kann Tausende neuer Features einführen, was unerwünscht ist. In solchen Fällen kann Target Encoding dabei helfen, die Betrugsrisikoinformationen des Händlers zu erfassen, ohne die Anzahl der Features zu erhöhen.
  2. Postleitzahl der Transaktion: Genau wie bei Händlern können Transaktionen in verschiedenen Postleitzahlengebieten unterschiedliche Betrugsrisikostufen aufweisen. Obwohl Postleitzahlen numerische Werte haben, sind sie keine kontinuierlichen Messvariablen und sollten nicht so wie sie sind im Modell verwendet werden. Stattdessen können wir die mit jeder Postleitzahl verbundenen Betrugsrisikoinformationen integrieren, indem wir eine Technik wie die Zielcodierung anwenden.

Die obigen Tabellen zeigen ein Beispiel für Zielkodierung. Hier haben wir ein einzelnes neues numerisches Merkmal „Zielkodierung Händlername“ erstellt, indem wir die Zielkodierungstechnik auf ein nicht numerisches kategoriales Merkmal „Händlername“ angewendet haben. Wie der Name schon sagt, basiert diese Technik auf Zielwerten, um die neuen Merkmalswerte zu berechnen.



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.

Feature-Verarbeitung

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.

1. Behandlung von Ausreißern

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:

  1. Löschen: Wir können die Beobachtungen mit mindestens einem Ausreißerwert löschen. Wenn unsere Daten jedoch zu viele Ausreißerwerte über verschiedene Merkmale hinweg aufweisen, gehen möglicherweise viele Beobachtungen verloren.
  2. Ersetzen: Wir können Ausreißerwerte durch Durchschnittswerte wie Mittelwert, Median und Modus eines bestimmten Merkmals ersetzen.
  3. Merkmalstransformation oder -standardisierung: Wir können eine Log-Transformation oder Merkmalsstandardisierung (wie unter Skalierung beschrieben) verwenden, um die Größe der Ausreißer zu reduzieren.
  4. Capping und Flooring: Wir können die Ausreißer über einem bestimmten Wert durch diesen Wert ersetzen, zum Beispiel alle Werte über dem 99. Perzentil durch den 99. Perzentilwert und alle Werte unter dem 1. Perzentil durch den 1. Perzentilwert.


Das obige Bild zeigt die beiden häufig verwendeten Techniken zum Erkennen univariater Ausreißer. Wir können sehen, dass die beiden Techniken unterschiedliche Ausreißersätze ergeben können. Die Methode „Mittelwert+3 SD“ sollte verwendet werden, wenn die Daten einer Normalverteilung folgen. Die auf Boxplot-Whiskern basierende Technik ist allgemeiner und kann auf Daten mit jeder beliebigen Verteilung angewendet werden.


Die obigen Tabellen zeigen die Anwendung häufig verwendeter Techniken zur Ausreißerbehandlung.


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.


2. Behandlung fehlender Werte

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.

  1. Löschen: Wir können die Beobachtungen löschen, bei denen mindestens ein Merkmalswert fehlt. Wenn unsere Daten jedoch zu viele fehlende Werte bei verschiedenen Merkmalen aufweisen, gehen möglicherweise viele Beobachtungen verloren.
  2. Löschen: Wenn ein Feature eine große Anzahl fehlender Werte aufweist, können wir es löschen.
  3. Ersetzen durch Durchschnittswerte: Wir können Durchschnittswerte wie Mittelwert, Median und Modus eines bestimmten Merkmals verwenden, um die fehlenden Werte zu ersetzen. Diese Methode ist einfach zu implementieren, liefert aber möglicherweise nicht für alle Arten von Beobachtungen gute Schätzungen. Beispielsweise kann eine Transaktion mit hohem Betrugsrisiko einen anderen durchschnittlichen Transaktionsbetrag haben als eine Transaktion mit geringem Betrugsrisiko, und die Verwendung eines Gesamtdurchschnitts für einen fehlenden Transaktionsbetrag mit hohem Betrugsrisiko ist möglicherweise kein guter Ersatz.
  4. Maximale Wahrscheinlichkeit, Mehrfachimputationen, K nächste Nachbarn: Dies sind komplexere Methoden, die die Beziehung zu anderen Merkmalen im Datensatz berücksichtigen und genauere Schätzungen liefern können als Gesamtdurchschnitte. Die Implementierung dieser Methoden erfordert jedoch zusätzliche Modellierung oder Algorithmusimplementierung.

Die obigen Tabellen zeigen die Anwendung häufig verwendeter Techniken zur Behandlung fehlender Werte.

3. Skalierung

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:

  1. Normalisierung: Diese Skalierungstechnik beschränkt die Merkmalswerte auf 0 bis 1. Um die Normalisierung anzuwenden, subtrahieren wir den minimalen Merkmalswert und dividieren ihn durch den Bereich (Differenz zwischen Minimum und Maximum) dieses Merkmals. Die Normalisierung ist möglicherweise keine gute Technik, wenn einige unserer Merkmale eine starke Schiefe aufweisen oder einige extreme Ausreißer haben.
  2. Standardisierung: Diese Technik transformiert die Merkmalsdatenverteilung in die Standardnormalverteilung. Wir können diese Technik implementieren, indem wir den Mittelwert subtrahieren und durch die Standardabweichung dividieren. Diese Technik wird im Allgemeinen bevorzugt, wenn das Merkmal eine starke Schiefe oder einige extreme Ausreißer aufweist.

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.

Die obigen Tabellen zeigen die Anwendung der beiden häufig verwendeten Merkmalsskalierungstechniken.


Das obige Bild zeigt den Skalenunterschied zwischen den ursprünglichen, normalisierten und standardisierten Merkmalswerten. Wie wir sehen können, hat die Skalierung keinen Einfluss auf die Form der Datenverteilung.

4. Dimensionsreduzierung

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.

Die obigen Tabellen zeigen die Anwendung von PCA zur Merkmalsreduzierung. Wie wir sehen, erfassen die ersten drei Merkmale über 87 % der im ursprünglichen Datensatz enthaltenen Informationen. In diesem Fall können wir uns dafür entscheiden, die beiden Merkmale (f4 und f5) wegzulassen, was einen Informationsverlust von <13 % bedeutet. Die Anzahl der beizubehaltenden und der zu eliminierenden Merkmale variiert je nach Problem und hängt von verschiedenen Faktoren ab.


5. Transformation zur Normalverteilung

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.

Das obige Bild zeigt drei Transformationen der ursprünglichen Zieldaten. In diesem speziellen Fall können wir sehen, dass die Log-Transformation am besten funktioniert, um die ursprüngliche Datenverteilung in eine Normalverteilung umzuwandeln.


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.


Abschluss

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.