Heim >Backend-Entwicklung >Python-Tutorial >Feature Engineering: Das Potenzial von Daten für überlegene Modelle für maschinelles Lernen nutzen

Feature Engineering: Das Potenzial von Daten für überlegene Modelle für maschinelles Lernen nutzen

WBOY
WBOYOriginal
2024-08-21 22:24:43521Durchsuche

Feature Engineering: Unlocking the Power of Data for Superior Machine Learning Models

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:

  • Kategoriale Imputation: Fehlende kategoriale Variablen werden normalerweise durch den am häufigsten vorkommenden Wert in anderen Datensätzen (Modus) ersetzt. Es funktioniert sowohl mit numerischen als auch mit kategorialen Werten. Es ignoriert jedoch die Merkmalskorrelation. Für diese Imputationsmethode können Sie die Klasse „SimpleImputer“ von Scikit-learn verwenden. Diese Klasse eignet sich auch für die Imputation mittels Mittelwert- und Median-Ansätzen, wie unten gezeigt.
# 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']])
  • Numerische Imputation: Fehlende numerische Werte werden im Allgemeinen durch den Mittelwert des entsprechenden Werts in anderen Datensätzen ersetzt. Auch Mittelwertimputation genannt. Diese Methode ist einfach, schnell und funktioniert gut mit kleinen Datensätzen. Diese Methode weist jedoch einige Einschränkungen auf, z. B. können Ausreißer in einer Spalte den Mittelwert des Ergebnisses verzerren, was sich auf die Genauigkeit des ML-Modells auswirken kann. Außerdem wird die Merkmalskorrelation bei der Imputation der fehlenden Werte nicht berücksichtigt. Sie können die Funktion „fillna“ verwenden, um die fehlenden Werte im Spaltenmittelwert zu imputieren.
# 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

    Behälter 1: 15 bis 34
  • Bin 2: 35 bis 117
  • Bin 3: 118 bis 279
  • Bin 4: 280 bis 392
  • Bin 5: 393 bis 425
Bin 1 umfasst den Bereich von 15 bis 34, sodass jeder Wert von 1.

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:

  • Funktioniert ähnlich wie Scikit-Learn-Modelle mit Funktionen wie fit(), fit_transform(), Predict() und Score().
  • Kann kategoriale Funktionen mit einer Hot-Kodierung verarbeiten.
  • Enthält eine Feature-Selektor-Klasse zur Auswahl geeigneter Features.
  • Physische Einheiten von Features können übergeben werden und zuordenbare Features werden übergeben berechnet werden.
  • Enthält den Buckingham-Pi-Satz – wird für die Berechnung von Dimensionslosigkeit verwendet Mengen. Wird nur für Tabellendaten verwendet.
  • Wird nur für Tabellendaten verwendet.

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

  • Ignorieren irrelevanter Merkmale: Dies könnte zu einem Modell mit schlechter Vorhersageleistung führen, da irrelevante Merkmale nicht zur Ausgabe beitragen und möglicherweise sogar zu Rauschen in den Daten führen. Der Fehler wird durch mangelndes Verständnis und mangelnde Analyse der Beziehung zwischen verschiedenen Datensätzen und der Zielvariablen verursacht.

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.

  • Überanpassung durch zu viele Funktionen: Das Modell weist möglicherweise eine perfekte Leistung bei Trainingsdaten auf (weil es die Daten effektiv „gespeichert“ hat), kann jedoch bei neuen, unsichtbaren Daten eine schlechte Leistung erbringen. Dies wird als Überanpassung bezeichnet. Dieser Fehler ist normalerweise auf die falsche Vorstellung zurückzuführen, dass „mehr besser ist“. Das Hinzufügen zu vieler Funktionen zum Modell kann zu einer großen Komplexität führen und die Interpretation des Modells erschweren.

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.

  • Merkmale nicht normalisieren: Der Algorithmus gibt Merkmalen mit größerem Maßstab möglicherweise mehr Gewicht, was zu ungenauen Vorhersagen führen kann. Dieser Fehler geschieht häufig aufgrund mangelnden Verständnisses der Funktionsweise von Algorithmen für maschinelles Lernen. Die meisten Algorithmen funktionieren besser, wenn alle Funktionen in einem ähnlichen Maßstab liegen.

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.

  • Vernachlässigung der Behandlung fehlender Werte Modelle können sich unvorhersehbar verhalten, wenn sie mit fehlenden Werten konfrontiert werden, was manchmal zu fehlerhaften Vorhersagen führt. Diese Falle entsteht oft aufgrund eines Versehens oder der Annahme, dass das Vorhandensein fehlender Werte das Modell nicht negativ beeinflusst.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn