Die 6 wichtigsten Techniken, die beim Feature Engineering verwendet werden [Maschinelles Lernen]
Veröffentlicht: 2021-03-12Inhaltsverzeichnis
Einführung
Feature Engineering ist einer der wichtigsten Aspekte eines jeden Data-Science-Projekts. Feature Engineering bezieht sich auf die Techniken, die zum Extrahieren und Verfeinern von Features aus den Rohdaten verwendet werden. Feature-Engineering-Techniken werden verwendet, um geeignete Eingabedaten für das Modell zu erstellen und die Leistung des Modells zu verbessern.
Die Modelle werden auf den Merkmalen trainiert und aufgebaut, die wir aus den Rohdaten ableiten, um die erforderliche Ausgabe bereitzustellen. Es kann vorkommen, dass die Daten, die wir haben, nicht gut genug sind, damit das Modell etwas daraus lernen kann. Wenn wir in der Lage sind, die Merkmale abzuleiten, die die Lösung für unser zugrunde liegendes Problem finden, würde sich herausstellen, dass es sich um eine gute Darstellung der Daten handelt. Je besser die Darstellung der Daten ist, desto besser ist die Anpassung des Modells, und das Modell zeigt bessere Ergebnisse.
Der Workflow jedes Data-Science-Projekts ist eher ein iterativer Prozess als ein einmaliger Prozess. In den meisten Data-Science-Projekten wird ein Basismodell erstellt, nachdem die Features aus den Rohdaten erstellt und verfeinert wurden. Nach Erhalt der Ergebnisse des Basismodells können einige vorhandene Merkmale optimiert werden, und einige neue Merkmale werden auch aus den Daten abgeleitet, um die Modellergebnisse zu optimieren.
Feature-Engineering
Die im Feature-Engineering-Prozess verwendeten Techniken können die Ergebnisse für alle Algorithmen und Datensätze auf die gleiche Weise liefern. Einige der gängigen Techniken, die im Feature-Engineering-Prozess verwendet werden, sind wie folgt:
1. Werttransformation
Die Werte der Merkmale können mithilfe von Parametern wie der logarithmischen Funktion, der Wurzelfunktion, der Exponentialfunktion usw. in eine andere Metrik umgewandelt werden. Diese Funktionen unterliegen einigen Einschränkungen und können möglicherweise nicht für alle Arten von Datensätzen verwendet werden. Beispielsweise kann die Wurzeltransformation oder die logarithmische Transformation nicht auf Merkmale angewendet werden, die negative Werte enthalten.
Eine der am häufigsten verwendeten Funktionen ist die logarithmische Funktion. Die logarithmische Funktion kann dabei helfen, die Schiefe der Daten zu verringern, die möglicherweise zu einem Ende hin verzerrt sind. Die Log-Transformation neigt dazu, die Daten zu normalisieren, wodurch die Auswirkung der Ausreißer auf die Leistung des Modells verringert wird.
Es hilft auch beim Reduzieren der Größe der Werte in einem Feature. Dies ist nützlich, wenn wir einige Algorithmen verwenden, die die Merkmale mit höheren Werten für wichtiger halten als die anderen.
2. Datenimputation
Die Datenimputation bezieht sich auf das Auffüllen der fehlenden Werte in einem Datensatz mit einem statistischen Wert. Diese Technik ist wichtig, da einige Algorithmen die fehlenden Werte nicht verarbeiten, was uns entweder auf die Verwendung anderer Algorithmen beschränkt oder diese fehlenden Werte zuschreibt. Es wird bevorzugt, es zu verwenden, wenn der Prozentsatz fehlender Werte in einem Merkmal geringer ist (etwa 5 bis 10 %), da es sonst zu einer stärkeren Verzerrung der Verteilung der Daten führen würde. Es gibt verschiedene Methoden, dies für numerische und kategoriale Merkmale zu tun.
Wir können die fehlenden Werte in numerische Merkmale mit willkürlichen Werten innerhalb eines bestimmten Bereichs oder mit statistischen Maßen wie Mittelwert, Median usw. imputieren. Diese Imputationen müssen sorgfältig vorgenommen werden, da die statistischen Maße anfällig für Ausreißer sind, die die Leistung des Modells eher beeinträchtigen würden . Bei kategorischen Merkmalen können wir die fehlenden Werte mit einer zusätzlichen Kategorie imputieren, die im Datensatz fehlt, oder sie einfach als fehlend imputieren, wenn die Kategorie unbekannt ist.
Ersteres erfordert ein gutes Gespür für Domänenkenntnisse, um die richtige Kategorie finden zu können, während letzteres eher eine Alternative zur Verallgemeinerung darstellt. Wir können den Modus auch verwenden, um die kategorialen Merkmale zu imputieren. Das Imputieren der Daten mit dem Modus kann auch zu einer Überrepräsentation des häufigsten Etiketts führen, wenn die fehlenden Werte zu viele sind.
Nehmen Sie online an den Kursen für künstliche Intelligenz von den besten Universitäten der Welt teil – Master, Executive Post Graduate Programs und Advanced Certificate Program in ML & AI, um Ihre Karriere zu beschleunigen.
3. Kategoriale Kodierung
Eine der Anforderungen bei vielen Algorithmen ist, dass die Eingabedaten numerischer Natur sein sollten. Dies stellt sich als Einschränkung für die Verwendung kategorialer Merkmale in solchen Algorithmen heraus. Um die kategorialen Merkmale als Zahlen darzustellen, müssen wir eine kategoriale Codierung durchführen. Einige der Methoden zum Konvertieren der kategorialen Merkmale in Zahlen sind wie folgt:
1. One-Hot-Codierung: – One-Hot-Codierung erstellt ein neues Feature, das einen Wert (entweder 0 oder 1) für jede Bezeichnung in einem kategorialen Feature annimmt. Diese neue Funktion zeigt an, ob diese Bezeichnung der Kategorie für jede Beobachtung vorhanden ist. Angenommen, es gibt 4 Labels in einem kategorialen Feature, dann würde es beim Anwenden der One-Hot-Codierung 4 boolesche Features erstellen.
Die gleiche Menge an Informationen kann auch mit 3 Merkmalen extrahiert werden, als ob alle Merkmale 0 enthalten würden, dann wäre der Wert des kategorialen Merkmals das 4. Etikett. Die Anwendung dieser Methode vergrößert den Merkmalsraum, wenn viele kategoriale Merkmale mit einer hohen Anzahl von Labels im Datensatz vorhanden sind.
2. Häufigkeitscodierung: – Diese Methode berechnet die Anzahl oder den Prozentsatz jedes Labels im kategorialen Merkmal und ordnet es demselben Label zu. Diese Methode erweitert nicht den Merkmalsraum des Datensatzes. Ein Nachteil dieser Methode besteht darin, dass, wenn die zwei oder mehr Beschriftungen im Datensatz dieselbe Anzahl aufweisen, die Karte dieselbe Nummer für alle Beschriftungen erhalten würde. Dadurch würden wichtige Informationen verloren gehen.
3. Ordinale Codierung: – Diese Methode, die auch als Label-Codierung bezeichnet wird, ordnet die unterschiedlichen Werte eines kategorialen Merkmals einer Zahl zwischen 0 und n-1 zu, wobei n die eindeutige Anzahl von Labels im Merkmal ist. Dieses Verfahren vergrößert den Merkmalsraum des Datensatzes nicht. Es wird jedoch eine ordinale Beziehung innerhalb der Beschriftungen in einem Feature erstellt.
4. Umgang mit Ausreißern
Ausreißer sind die Datenpunkte, deren Werte sich stark vom Rest des Loses unterscheiden. Um mit diesen Ausreißern umgehen zu können, müssen wir sie zuerst erkennen. Wir können sie mithilfe von Visualisierungen wie Box-Plot und Scatter-Plot in Python erkennen oder den Interquartilbereich (IQR) verwenden. Der Interquartilabstand ist die Differenz zwischen dem ersten Quartal (25. Perzentil) und dem dritten Quartal (75. Perzentil).
Die Werte, die nicht in den Bereich von (Q1 – 1,5*IQR) und (Q3 + 1,5*IQR) fallen, werden als Ausreißer bezeichnet. Nachdem wir die Ausreißer erkannt haben, können wir sie behandeln, indem wir sie aus dem Datensatz entfernen, eine Transformation anwenden, sie als fehlende Werte behandeln, um sie mit einer Methode zu imputieren usw.
5. Merkmalsskalierung
Die Merkmalsskalierung wird verwendet, um die Werte der Merkmale zu ändern und sie in einen Bereich zu bringen. Es ist wichtig, diesen Prozess anzuwenden, wenn wir Algorithmen wie SVM, lineare Regression, KNN usw. verwenden, die empfindlich auf die Größe der Werte reagieren. Um die Merkmale zu skalieren, können wir eine Standardisierung, Normalisierung und Min-Max-Skalierung durchführen. Die Normalisierung skaliert die Werte eines Merkmalsbereichs von -1 bis 1 neu. Es ist das Verhältnis der Subtraktion jeder Beobachtung und des Mittelwerts zur Subtraktion des Höchst- und Mindestwerts dieses Merkmals. dh [X – Mittelwert(X)]/[max(X) – min(X)].
Bei der Min-Max-Skalierung wird der Mindestwert des Merkmals anstelle des Mittelwerts verwendet. Diese Methode ist sehr empfindlich gegenüber Ausreißern, da sie nur die Endwerte des Merkmals berücksichtigt. Die Standardisierung skaliert die Werte eines Merkmals von 0 auf 1 neu. Sie normalisiert die Verteilung der Daten nicht, während die erstere Methode dies tut.
6. Umgang mit Datums- und Zeitvariablen
Wir stoßen auf viele Variablen, die Datum und Uhrzeit in verschiedenen Formaten angeben. Wir können mehr Merkmale aus dem Datum ableiten, wie den Monat, den Wochentag/Monat, das Jahr, das Wochenende oder nicht, den Unterschied zwischen den Daten usw. Dies kann es uns ermöglichen, aussagekräftigere Informationen aus dem Datensatz zu extrahieren. Aus den Zeitfunktionen können wir auch Informationen wie Stunden, Minuten, Sekunden usw. extrahieren.
Eine Sache, die die meisten Leute übersehen, ist, dass alle Datums- und Zeitvariablen zyklische Merkmale sind. Angenommen, wir müssen überprüfen, welcher Tag zwischen Mittwoch (3) und Samstag (7) näher am Sonntag liegt (eine 1). Jetzt wissen wir, dass der Samstag näher rückt, aber in Zahlen ausgedrückt wird es ein Mittwoch sein, da der Abstand zwischen 3 und 1 kleiner ist als der von 7 und 1. Dasselbe gilt, wenn das Zeitformat im 24-Stunden-Format ist.
Um dieses Problem anzugehen, können wir diese Variablen als Darstellung der sin- und cos-Funktion ausdrücken. Für die „Minuten“-Funktion können wir die sin- und cos-Funktion mit NumPy anwenden, um sie wie folgt in zyklischer Natur darzustellen:
minute_feature_sin = np.sin(df['minute_feature']*(2*π/60))
minute_feature_cos = np.cos(df['minute_feature']*(2*π/60))
(Hinweis: Teilen Sie durch 60, weil eine Stunde 60 Minuten hat. Wenn Sie es monatelang tun möchten, teilen Sie es durch 12 und so weiter.)
Wenn Sie diese Features in einem Streudiagramm darstellen, werden Sie feststellen, dass diese Features eine zyklische Beziehung zwischen ihnen aufweisen.
Lesen Sie auch: Ideen und Themen für Machine Learning-Projekte
Fazit
Der Artikel konzentrierte sich auf die Bedeutung des Feature-Engineering und nannte einige gängige Techniken, die im Prozess des Feature-Engineering verwendet werden. Es hängt vom Algorithmus und den vorliegenden Daten ab, zu entscheiden, welche der oben aufgeführten Techniken bessere Erkenntnisse liefern würden.
Aber das ist wirklich ein harter Fang und nicht sicher anzunehmen, da die Datensätze unterschiedlich sein können und die für die Daten verwendeten Algorithmen ebenfalls variieren können. Der bessere Ansatz besteht darin, einem inkrementellen Ansatz zu folgen und die Modelle zu verfolgen, die zusammen mit ihren Ergebnissen erstellt wurden, anstatt leichtsinnig Feature-Engineering durchzuführen.
Wenn Sie mehr über maschinelles Lernen erfahren möchten, sehen Sie sich das Executive PG-Programm von IIIT-B & upGrad für maschinelles Lernen und KI an, das für Berufstätige konzipiert ist und mehr als 450 Stunden strenge Schulungen, mehr als 30 Fallstudien und Aufgaben, IIIT, bietet -B Alumni-Status, mehr als 5 praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.
Was sind die Nachteile der Verwendung der Mittelwert-Median-basierten Datenimputationstechnik?
Bei Verwendung der Mittelwertimputation bleiben die Verknüpfungen und Korrelationen zwischen Variablen nicht erhalten. Durch die Imputierung des Mittelwerts wird jedoch der Mittelwert der beobachteten Daten beibehalten. Selbst wenn zufällig alle Daten fehlen würden, würde die mittlere Schätzung unverzerrt bleiben. Die Varianz der imputierten Variablen wird durch Mittelwertimputation reduziert. Die mittlere Imputation reduziert Standardfehler, wodurch die meisten Hypothesentests und Konfidenzintervallberechnungen ungenau werden. So werden Fehler 1. Art unbewusst gemacht.
Warum ist die Merkmalsextraktion erforderlich?
Die Merkmalsextraktion wird verwendet, um die kleinste und informativste Sammlung von Merkmalen (unterscheidbare Muster) zu lokalisieren, um die Effektivität des Klassifikators zu verbessern. Die Merkmalsextraktion hilft bei der Reduzierung unnötiger Daten in einer Datensammlung, sodass der Schwerpunkt nur auf den relevanten Informationen und Merkmalen liegt. Schließlich erleichtert die Reduzierung der Daten der Maschine, das Modell mit weniger Aufwand zu entwickeln, und beschleunigt die Lern- und Verallgemeinerungsprozesse im maschinellen Lernprozess. Die wichtigste Anwendung von Feature Engineering ist die biomedizinische Signalklassifikation, bei der die Merkmalsextraktion ein wichtiges Element ist, da die Klassifikationsleistung leiden könnte, wenn die Merkmale nicht sorgfältig ausgewählt werden.
Gibt es Nachteile bei der Verwendung der Merkmalsextraktionstechnik?
Die Merkmalsextraktion hat einige neue Merkmale hervorgebracht, die von gewöhnlichen Menschen nicht gelesen oder verstanden werden können. Skalierbarkeit ist eine weitere Herausforderung bei der Feature-Extraktion. Wenn die Datensätze groß sind, können einige der Merkmalsextraktionstechniken nicht ausgeführt werden. Insbesondere komplexe nichtlineare Merkmalsextraktionsansätze wären nicht umsetzbar. Die meisten Techniken beruhen auf irgendeiner Form von Annäherung, um das Merkmalsauswahlproblem effizient zu handhaben, was in bestimmten Situationen nicht in der Lage ist, das genaue Problem anzugehen.