Heim >Backend-Entwicklung >Python-Tutorial >Feature Engineering: Das Potenzial von Daten für überlegene Modelle für maschinelles Lernen nutzen
Feature Engineering ist der Prozess der Auswahl, Bearbeitung und Umwandlung von Rohdaten in Features, die beim maschinellen Lernen, hauptsächlich beim überwachten Lernen, verwendet werden können. Es besteht aus fünf Prozessen: Feature-Erstellung, Transformationen, Feature-Extraktion, explorative Datenanalyse und Benchmarking. In diesem Zusammenhang ist ein „Merkmal“ jede messbare Eingabe, die in einem Vorhersagemodell verwendet werden kann. Es könnte sich um den Klang eines Tieres, einer Farbe oder der Stimme einer Person handeln.
Diese Technik ermöglicht es Datenwissenschaftlern, die wertvollsten Erkenntnisse aus Daten zu extrahieren, was genauere Vorhersagen und umsetzbare Erkenntnisse gewährleistet.
Arten von Funktionen
Wie oben erwähnt, ist ein Merkmal jeder messbare Punkt, der in einem Vorhersagemodell verwendet werden kann. Lassen Sie uns die Arten des Feature-Engineerings für maschinelles Lernen durchgehen –
Numerische Merkmale: Diese Merkmale sind kontinuierliche Variablen, die auf einer Skala gemessen werden können. Zum Beispiel: Alter, Gewicht, Größe und Einkommen. Diese Funktionen können direkt beim maschinellen Lernen genutzt werden.
Kategorische Merkmale: Dies sind diskrete Werte, die in Kategorien gruppiert werden können. Dazu gehören: Geschlecht, Postleitzahl und Farbe. Kategoriale Merkmale beim maschinellen Lernen müssen normalerweise in numerische Merkmale umgewandelt werden, bevor sie in Algorithmen für maschinelles Lernen verwendet werden können. Sie können dies ganz einfach mit One-Hot-, Label- und Ordinalkodierung tun.
Zeitreihenfunktionen: Bei diesen Funktionen handelt es sich um Messungen, die über die Zeit hinweg durchgeführt werden. Zu den Zeitreihenfunktionen gehören Aktienkurse, Wetterdaten und Sensorwerte. Mit diesen Funktionen können Modelle für maschinelles Lernen trainiert werden, die zukünftige Werte vorhersagen oder Muster in den Daten erkennen können.
Textfunktionen: Dies sind Textzeichenfolgen, die Wörter, Phrasen oder Sätze darstellen können. Beispiele für Textfunktionen sind Produktbewertungen, Social-Media-Beiträge und Krankenakten. Mithilfe von Textfunktionen können Sie Modelle für maschinelles Lernen trainieren, die die Bedeutung von Text verstehen oder Text in verschiedene Kategorien einteilen können.
Einer der wichtigsten Prozesse in der Pipeline für maschinelles Lernen ist: Merkmalsauswahl, bei dem es sich um den Prozess der Auswahl der relevantesten Merkmale in einem Datensatz handelt, um das Modelltraining zu erleichtern. Es verbessert die Vorhersageleistung und Robustheit des Modells und verringert die Wahrscheinlichkeit einer Überanpassung an die Trainingsdaten. Der Prozess ist von entscheidender Bedeutung, da er dazu beiträgt, Überanpassungen zu reduzieren, die Interpretierbarkeit des Modells zu verbessern, die Genauigkeit zu verbessern und die Trainingszeiten zu verkürzen.
Techniken im Feature Engineering
Imputation
Diese Technik befasst sich mit dem Umgang mit fehlenden Werten/Daten. Dies ist eines der Probleme, auf die Sie stoßen werden, wenn Sie Ihre Daten für die Bereinigung und sogar Standardisierung vorbereiten. Dies wird hauptsächlich durch Datenschutzbedenken, menschliches Versagen und sogar Unterbrechungen des Datenflusses verursacht. Es kann in zwei Kategorien eingeteilt werden:
# impute Graduated and Family_Size features with most_frequent values from sklearn.impute import SimpleImputer impute_mode = SimpleImputer(strategy = 'most_frequent') impute_mode.fit(df[['Graduated', 'age']]) df[['Graduated', 'age']] = impute_mode.transform(df[['Graduated', 'age']])
# Impute Work_Experience feature by its mean in our dataset df['Work_Experience'] = df['Work_Experience'].fillna(df['Work_Experience'].mean())
Kodierung
Dies ist der Prozess der Umwandlung kategorialer Daten in numerische (kontinuierliche) Daten. Im Folgenden sind einige der Techniken der Feature-Codierung aufgeführt:
Label-Kodierung: Die Label-Kodierung ist eine Methode zum Kodieren von Variablen oder Features in einem Datensatz. Dabei werden kategoriale Variablen in numerische Variablen umgewandelt.
One-Hot-Codierung: One-Hot-Codierung ist der Prozess, bei dem kategoriale Variablen in eine Form umgewandelt werden, die von ML-Algorithmen verwendet werden kann.
Binärkodierung: Bei der Binärkodierung handelt es sich um den Prozess der Kodierung von Daten mithilfe des Binärcodes. Bei der binären Kodierung wird jedes Zeichen durch eine Kombination aus Nullen und Einsen dargestellt.
Skalierung und Normalisierung
Merkmalsskalierung ist eine Methode zur Normalisierung des Bereichs unabhängiger Variablen oder Merkmale von Daten. In der Datenverarbeitung wird dies auch als Datennormalisierung bezeichnet und im Allgemeinen während des Datenvorverarbeitungsschritts durchgeführt. Wenn Sie beispielsweise mehrere unabhängige Variablen wie Alter, Gehalt und Größe haben; Mit ihrem Bereich von (18–100 Jahre), (25.000–75.000 Euro) bzw. (1–2 Meter) würde die Feature-Skalierung dazu beitragen, dass sie alle im gleichen Bereich liegen, beispielsweise um 0 zentriert oder im Bereich (0,1) abhängig von der Skalierungstechnik.
Normalisierung ist eine Skalierungstechnik, bei der Werte verschoben und neu skaliert werden, sodass sie letztendlich im Bereich zwischen 0 und 1 liegen. Sie wird auch als Min-Max-Skalierung bezeichnet. Hier sind Xmax und Xmin die Maximal- bzw. Minimalwerte der Funktion.
Binning
Binning (auch Bucketing genannt) ist eine Feature-Engineering-Technik, die verschiedene numerische Teilbereiche in Bins oder Buckets gruppiert. In vielen Fällen werden durch Binning numerische Daten in kategoriale Daten umgewandelt. Betrachten Sie beispielsweise ein Feature mit dem Namen
Dimensionalitätsreduzierung
Dies ist eine Methode zur Darstellung eines bestimmten Datensatzes mit einer geringeren Anzahl von Merkmalen (d. h. Dimensionen) und gleichzeitiger Erfassung der aussagekräftigen Eigenschaften der Originaldaten.1 Dies läuft darauf hinaus, irrelevante oder redundante Merkmale oder einfach verrauschte Daten zu entfernen, um ein Modell zu erstellen mit einer geringeren Anzahl von Variablen. Grundsätzlich werden hochdimensionale Daten in niedrigdimensionale Daten umgewandelt. Es gibt zwei Hauptansätze zur Dimensionsreduktion –
Feature-Auswahl: Bei der Feature-Auswahl wird eine Teilmenge der ursprünglichen Features ausgewählt, die für das vorliegende Problem am relevantesten sind. Ziel ist es, die Dimensionalität des Datensatzes zu reduzieren und gleichzeitig die wichtigsten Merkmale beizubehalten. Es gibt verschiedene Methoden zur Funktionsauswahl, darunter Filtermethoden, Wrapper-Methoden und eingebettete Methoden. Filtermethoden ordnen die Features basierend auf ihrer Relevanz für die Zielvariable, Wrapper-Methoden verwenden die Modellleistung als Kriterium für die Auswahl von Features und eingebettete Methoden kombinieren die Feature-Auswahl mit dem Modelltrainingsprozess.
Feature-Extraktion: Bei der Feature-Extraktion handelt es sich um die Erstellung neuer Features durch Kombinieren oder Transformieren der ursprünglichen Features. Das Ziel besteht darin, eine Reihe von Funktionen zu erstellen, die die Essenz der Originaldaten in einem niedrigerdimensionalen Raum erfassen. Es gibt verschiedene Methoden zur Merkmalsextraktion, darunter die Hauptkomponentenanalyse (PCA), die lineare Diskriminanzanalyse (LDA) und die t-verteilte stochastische Nachbareinbettung (t-SNE). PCA ist eine beliebte Technik, die die ursprünglichen Merkmale auf einen niedrigerdimensionalen Raum projiziert und dabei so viel Varianz wie möglich beibehält.
Automatisierte Feature-Engineering-Tools
Es gibt mehrere Tools, die zur Automatisierung des Feature-Engineerings verwendet werden. Schauen wir uns einige davon an.
FeatureTools – Dies ist ein beliebtes Open-Source-Python-Framework für automatisiertes Feature-Engineering. Es funktioniert über mehrere verwandte Tabellen hinweg und wendet verschiedene Transformationen zur Feature-Generierung an. Der gesamte Prozess wird mithilfe einer Technik namens „Deep Feature Synthesis“ (DFS) durchgeführt, die rekursiv Transformationen über Entitätsmengen hinweg anwendet, um komplexe Features zu generieren.
Autofeat – Dies ist eine Python-Bibliothek, die automatisiertes Feature-Engineering und Feature-Auswahl zusammen mit Modellen wie AutoFeatRegressor und AutoFeatClassifier bietet. Diese basieren auf vielen wissenschaftlichen Berechnungen und benötigen eine gute Rechenleistung. Im Folgenden sind einige der Funktionen der Bibliothek aufgeführt:
AutoML – Automatisches maschinelles Lernen kann in einfachen Worten als Suchkonzept mit speziellen Suchalgorithmen definiert werden, um die optimalen Lösungen für jede Komponente der ML-Pipeline zu finden. Es umfasst: Automatisiertes Feature-Engineering, Automatisierte Hyperparameter-Optimierung, )Neuronale Architektursuche(NAS
Häufige Probleme und Best Practices beim Feature Engineering
Häufige Probleme
Stellen Sie sich ein Unternehmen vor, das maschinelles Lernen nutzen möchte, um monatliche Umsätze vorherzusagen. Sie geben Daten wie die Mitarbeiterzahl und die Bürogröße ein, die keinen Zusammenhang mit dem Verkaufsvolumen haben.
Lösung: Vermeiden Sie dies, indem Sie eine gründliche Funktionsanalyse durchführen, um zu verstehen, welche Datenvariablen erforderlich sind, und diejenigen entfernen, die nicht erforderlich sind.
Stellen Sie sich eine App vor, die zukünftiges Benutzerwachstum prognostiziert und 100 Funktionen in ihr Modell eingibt, die meisten davon jedoch überlappende Informationen teilen.
Behebung: Beheben Sie dies, indem Sie Strategien wie Dimensionsreduzierung und Merkmalsauswahl verwenden, um die Anzahl der Eingaben zu minimieren und so die Modellkomplexität zu verringern.
Stellen Sie sich vor, ein Gesundheitsdienstleister verwendet das Alter und das Einkommensniveau des Patienten, um das Risiko einer bestimmten Krankheit vorherzusagen, normalisiert diese Merkmale jedoch nicht, da sie unterschiedliche Maßstäbe haben.
Fix: Wenden Sie Feature-Skalierungstechniken an, um alle Variablen auf einen ähnlichen Maßstab zu bringen, um dieses Problem zu vermeiden.
Zum Beispiel verwendet ein Online-Händler, der die Kundenabwanderung vorhersagt, Daten zur Kaufhistorie, geht aber nicht auf Fälle ein, in denen Kaufdaten fehlen.
Fix: Implementieren Sie Strategien zum Umgang mit fehlenden Werten, z. B. Datenimputation, bei der Sie fehlende Werte durch statistische Schätzungen ersetzen.
Best Practices
Achten Sie darauf, fehlende Daten in Ihren Eingabefunktionen zu berücksichtigen: In einem realen Fall, in dem ein Projekt darauf abzielt, Immobilienpreise vorherzusagen, enthalten möglicherweise nicht alle Dateneinträge Informationen über das Alter eines Hauses. Anstatt diese Einträge zu verwerfen, können Sie die fehlenden Daten mithilfe einer Strategie wie der „mittleren Imputation“ imputieren, bei der der Durchschnittswert des Alters des Hauses aus dem Datensatz verwendet wird. Durch den korrekten Umgang mit fehlenden Daten, anstatt sie einfach zu verwerfen, verfügt das Modell über mehr Daten, aus denen es lernen kann, was zu einer besseren Modellleistung führen könnte.
Verwenden Sie One-Hot-Codierung für kategoriale Daten: Wenn wir beispielsweise in einem Datensatz über Autos ein Merkmal „Farbe“ mit den möglichen Werten „Rot“, „Blau“ und „Grün“ haben, Wir würden dies in drei separate binäre Merkmale umwandeln: „is_red“, „is_blue“ und „is_green“. Diese Strategie ermöglicht es dem Modell, kategoriale Daten korrekt zu interpretieren und so die Qualität der Ergebnisse und Vorhersagen des Modells zu verbessern.
Betrachten Sie die Funktionsskalierung: Als reales Beispiel kann ein Datensatz zur Vorhersage einer Krankheit das Alter in Jahren (1100) und Glukosespiegelmessungen (70180) enthalten. Durch die Skalierung werden diese beiden Merkmale auf die gleiche Skala gebracht, sodass beide gleichermaßen zu Entfernungsberechnungen beitragen können, wie im KNN-Algorithmus (K-Nearest Neighbors). Die Feature-Skalierung kann die Leistung vieler Algorithmen für maschinelles Lernen verbessern, sie effizienter machen und die Rechenzeit verkürzen.
Erstellen Sie gegebenenfalls Interaktionsfunktionen: Ein Beispiel könnte die Vorhersage von Interaktionen mit Immobilienpreisen sein, was von Vorteil sein kann. Das Erstellen einer neuen Funktion, die die Anzahl der Badezimmer mit der Gesamtquadratfläche multipliziert, kann dem Modell wertvolle neue Informationen liefern. Interaktionsfunktionen können Muster in den Daten erfassen, die lineare Modelle sonst nicht erkennen würden, und so möglicherweise die Modellleistung verbessern.
Irrelevante Funktionen entfernen: Bei einem Problem, bei dem wir den Preis eines Smartphones vorhersagen müssen, hat die Farbe des Smartphones möglicherweise nur einen geringen Einfluss auf die Vorhersage und kann weggelassen werden. Das Entfernen irrelevanter Funktionen kann Ihr Modell vereinfachen, es schneller und besser interpretierbar machen und das Risiko einer Überanpassung verringern.
Feature Engineering ist nicht nur ein Vorverarbeitungsschritt beim maschinellen Lernen; Dies ist ein grundlegender Aspekt, der über den Erfolg Ihrer Modelle entscheiden kann. Ausgereifte Funktionen können zu genaueren Vorhersagen und einer besseren Verallgemeinerung führen. Datendarstellung: Funktionen dienen als Grundlage für die Arbeit von Algorithmen für maschinelles Lernen. Durch die effektive Darstellung von Daten ermöglicht Feature Engineering Algorithmen, sinnvolle Muster zu erkennen. Daher müssen angehende und sogar erfahrene Datenwissenschaftler sowie Enthusiasten und Ingenieure des maschinellen Lernens die entscheidende Rolle erkennen, die Feature Engineering bei der Gewinnung aussagekräftiger Erkenntnisse aus Daten spielt. Wenn man die Kunst des Feature-Engineerings versteht und gut anwendet, kann man das wahre Potenzial von Algorithmen für maschinelles Lernen erschließen und wirkungsvolle Lösungen in verschiedenen Bereichen vorantreiben.
Wenn Sie Fragen haben oder Möglichkeiten zur Verbesserung meines Artikels haben, hinterlassen Sie diese bitte im Kommentarbereich. Vielen Dank!
Das obige ist der detaillierte Inhalt vonFeature Engineering: Das Potenzial von Daten für überlegene Modelle für maschinelles Lernen nutzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!