Featureentwicklung im Data Science-ProzessFeature engineering in data science

In diesem Artikel erfahren Sie mehr über Feature Engineering und seine Rolle bei der Datenaufbereitung in Machine Learning.In this article, you learn about feature engineering and its role in enhancing data in machine learning. Lernen Sie aus den anschaulichen Beispielen, die aus Azure Machine Learning Studio (Classic) entnommen wurden.Learn from illustrative examples drawn from Azure Machine Learning Studio (classic) experiments.

  • Featureentwicklung: Das Erstellen neuer Features aus Rohdaten, um die Vorhersageleistung des Lernalgorithmus zu erhöhen.Feature engineering: The process of creating new features from raw data to increase the predictive power of the learning algorithm. Die entwickelten Features sollten zusätzliche Informationen erfassen, die im ursprünglichen Satz der Features nicht leicht ersichtlich sind.Engineered features should capture additional information that is not easily apparent in the original feature set.
  • Featureauswahl: Das Auswählen der wichtigsten Teilmenge von Features, um die Anzahl der Dimensionen des Trainingsproblems zu verringern.Feature selection: The process of selecting the key subset of features to reduce the dimensionality of the training problem.

Normalerweise wird Feature Engineering zuerst ausgeführt, um zusätzliche Features zu generieren, und anschließend wird die Featureauswahl ausgeführt, um irrelevante, redundante oder hoch korrelierte Features zu entfernen.Normally feature engineering is applied first to generate additional features, and then feature selection is done to eliminate irrelevant, redundant, or highly correlated features.

Feature Engineering und Featureauswahl sind Teil der Modellierungsphase des Team Data Science-Prozesses (TDSP).Feature engineering and selection are part of the modeling stage of the Team Data Science Process (TDSP). Weitere Informationen zum TDSP und zum Data Science-Lebenszyklus finden Sie unter Was ist der Team Data Science-Prozess (TDSP)?To learn more about the TDSP and the data science lifecycle, see What is the TDSP?

Was ist Feature Engineering?What is feature engineering?

Trainingsdaten bestehen aus einer Matrix von Zeilen und Spalten.Training data consists of a matrix composed of rows and columns. Jede Zeile in der Matrix ist eine Beobachtung oder ein Datensatz.Each row in the matrix is an observation or record. Die Spalten jeder Zeile sind die Features, mit denen die einzelnen Datensätze beschrieben werden.The columns of each row are the features that describe each record. Die im Entwurf des Experiments angegebenen Features sollen die Muster in den Daten beschreiben.The features specified in the experimental design should characterize the patterns in the data.

Obwohl viele der Rohdatenfelder direkt zum Trainieren eines Modells verwendet werden können, ist es häufig erforderlich, zusätzliche (entwickelte) Features für ein verbessertes Trainingsdataset zu erstellen.Although many of the raw data fields can be used directly to train a model, it's often necessary to create additional (engineered) features for an enhanced training dataset.

Entwickelte Features, die das Training verbessern, liefern Informationen, die die Muster in den Daten besser differenzieren.Engineered features that enhance training provide information that better differentiates the patterns in the data. Doch dieser Prozess nicht einfach.But this process is something of an art. Fundierte und produktive Entscheidungen erfordern häufig Fachwissen.Sound and productive decisions often require domain expertise.

Beispiel 1: Hinzufügen von temporären Features zu einem RegressionsmodellExample 1: Add temporal features for a regression model

Das Experiment Vorhersage der Anzahl ausgeliehener Fahrräder in Azure Machine Learning Studio (Classic) soll veranschaulichen, wie Features für Regressionsaufgaben entwickelt werden können.Let's use the experiment Demand forecasting of bikes rentals in Azure Machine Learning Studio (classic) to demonstrate how to engineer features for a regression task. Dieses Experiment soll den Bedarf an vermieteten Fahrrädern für eine(n) bestimmte(n) Monat/Tag/Stunde vorhersagen.The objective of this experiment is to predict the demand for bike rentals within a specific month/day/hour.

FahrradvermietungsdatasetBike rental dataset

Das UCI-Dataset zur Fahrradvermietung basiert auf echten Daten eines Fahrradverleihers in den USA.The Bike Rental UCI dataset is based on real data from a bike share company based in the United States. Es stellt die Anzahl von geliehenen Fahrrädern zu einer bestimmten Tageszeit in den Jahren 2011 und 2012 dar.It represents the number of bike rentals within a specific hour of a day for the years 2011 and 2012. Es enthält 17.379 Zeilen und 17 Spalten.It contains 17,379 rows and 17 columns.

Die unformatierte Featuregruppe enthält Wetterbedingungen (Temperatur/Luftfeuchtigkeit/Windgeschwindigkeit) und den Typ des Tags (Feiertag/Wochentag).The raw feature set contains weather conditions (temperature/humidity/wind speed) and the type of the day (holiday/weekday). Das Feld für die Vorhersage ist die Anzahl, die die ausgeliehenen Fahrräder innerhalb einer bestimmten Tageszeit darstellt.The field to predict is the count, which represents the bike rentals within a specific hour. Die Anzahl reicht von 1 bis 977.Count ranges from 1 to 977.

Erstellen eines Feature Engineering-ExperimentsCreate a feature engineering experiment

Mit dem Ziel, effektive Features in den Trainingsdaten zu entwickeln, werden vier Regressionsmodelle mit demselben Algorithmus, jedoch mit vier verschiedenen Trainingsdatasets erstellt.With the goal of constructing effective features in the training data, four regression models are built using the same algorithm but with four different training datasets. Die vier Datasets enthalten dieselben Roheingabedaten, jedoch mit einer steigenden Anzahl von festgelegten Features.The four datasets represent the same raw input data, but with an increasing number of features set. Diese Features sind in vier Kategorien unterteilt:These features are grouped into four categories:

  1. A = Wetter + Feiertag + Wochenende + Wochenendfeatures für den vorhergesagten TagA = weather + holiday + weekday + weekend features for the predicted day
  2. B = Anzahl von Fahrrädern, die in jeder der letzten 12 Stunden geliehen wurdenB = number of bikes that were rented in each of the previous 12 hours
  3. C = Anzahl von Fahrrädern, die an jedem der vergangenen 12 Tage zur gleichen Stunde geliehen wurdenC = number of bikes that were rented in each of the previous 12 days at the same hour
  4. D = Anzahl von Fahrrädern, die in jeder der vorherigen 12 Wochen zur gleichen Stunde und am gleichen Tag geliehen wurdenD = number of bikes that were rented in each of the previous 12 weeks at the same hour and the same day

Neben Featuregruppe A, die bereits in den ursprünglichen Rohdaten vorhanden ist, werden die anderen drei Featuregruppen über den Featureentwicklungsprozess erstellt.Besides feature set A, which already exists in the original raw data, the other three sets of features are created through the feature engineering process. Featuregruppe B erfasst die jüngste Nachfrage nach Fahrrädern.Feature set B captures recent demand for the bikes. Featuregruppe C erfasst die Nachfrage nach Fahrrädern zu einer bestimmten StundeFeature set C captures the demand for bikes at a particular hour. Featuregruppe D erfasst die Nachfrage nach Fahrrädern zu bestimmten Uhrzeiten an bestimmten Wochentagen.Feature set D captures demand for bikes at particular hour and particular day of the week. Die vier Trainingsdatasets umfassen jeweils Featuregruppe A, A+B, A+B+C und A+B+C+D.The four training datasets each includes feature set A, A+B, A+B+C, and A+B+C+D, respectively.

Feature Engineering mit Studio (Classic)Feature engineering using Studio (classic)

Diese vier Trainingsdatasets werden im Studio (Classic)-Experiment über vier Verzweigungen aus den vorbearbeiteten Eingabedatasets gebildet.In the Studio (classic) experiment, these four training datasets are formed via four branches from the pre-processed input dataset. Mit Ausnahme der am weitesten links liegenden Verzweigung enthält jede dieser Verzweigungen das Modul Execute R Script, in dem die abgeleiteten Features (Featuregruppe B, C und D) erstellt und an das importierte Dataset angehängt werden.Except for the leftmost branch, each of these branches contains an Execute R Script module, in which the derived features (feature set B, C, and D) are constructed and appended to the imported dataset.

Die folgende Abbildung veranschaulicht das R-Skript, das zur Erstellung der Featuregruppe B in der zweiten Verzweigung von links verwendet wird.The following figure demonstrates the R script used to create feature set B in the second left branch.

Features erstellen

ErgebnisseResults

Ein Vergleich der Leistungsergebnisse der vier Modelle ist in der folgenden Tabelle zusammengefasst:A comparison of the performance results of the four models is summarized in the following table:

Ergebnisvergleich

Die besten Ergebnisse werden mit den Features A+B+C angezeigt.The best results are shown by features A+B+C. Die Fehlerrate ist niedriger, wenn eine zusätzliche Featuregruppe in den Trainingsdaten enthalten ist.The error rate decreases when additional feature set are included in the training data. Dies bestätigt die Vermutung, dass die Featuregruppen B und C weitere relevante Informationen für die Regressionsaufgabe liefern.It verifies the presumption that the feature set B, C provide additional relevant information for the regression task. Das Hinzufügen des Features D scheint jedoch keine zusätzliche Verringerung der Fehlerrate zu ergeben.But adding the D feature does not seem to provide any additional reduction in the error rate.

Beispiel 2: Erstellen von Features für TextminingExample 2: Create features for text mining

Feature Engineering wird häufig in Aufgaben verwendet, die mit Textmining im Zusammenhang stehen, z. B. Dokumentklassifizierung und Stimmungsanalyse.Feature engineering is widely applied in tasks related to text mining such as document classification and sentiment analysis. Da einzelne Teile des Textinhalts in der Regel als Eingabedaten dienen, ist Feature Engineering erforderlich, um Features in Zusammenhang mit Häufigkeiten von Wörtern/Ausdrücken zu erstellen.Since individual pieces of raw text usually serve as the input data, the feature engineering process is needed to create the features involving word/phrase frequencies.

Feature HashingFeature hashing

Für diese Aufgabe wird ein Verfahren namens Feature Hashing angewendet, um beliebige Textfeatures effizient in Indizes zu verwandeln.To achieve this task, a technique called feature hashing is applied to efficiently turn arbitrary text features into indices. Statt jedes Textfeature (Wörter/Ausdrücke) einem bestimmten Index zuzuweisen, wird bei dieser Methode durch Anwenden einer Hashfunktion auf die Features und die direkte Verwendung ihrer Hashwerte als Indizes ein Ergebnis erzielt.Instead of associating each text feature (words/phrases) to a particular index, this method applies a hash function to the features and using their hash values as indices directly.

Studio (Classic) enthält das Modul Feature Hashing, das Wort/Ausdruck-Features bequem erstellt.In Studio (classic), there is a Feature Hashing module that creates word/phrase features conveniently. Die folgende Abbildung zeigt ein Beispiel für die Verwendung dieses Moduls.Following figure shows an example of using this module. Das Eingabedataset enthält zwei Spalten: die Buchbewertung, die im Bereich von 1 bis 5 liegt, und den tatsächlichen Inhalt der Bewertung.The input dataset contains two columns: the book rating ranging from 1 to 5, and the actual review content. Dieses Modul dient dem Zweck, eine Reihe von neuen Features abzurufen, die die Häufigkeit des Auftretens entsprechender Wörter/Ausdrücke innerhalb der jeweiligen Buchbewertung zeigen.The goal of this module is to retrieve a bunch of new features that show the occurrence frequency of the corresponding word(s)/phrase(s) within the particular book review. Um dieses Modul zu verwenden, führen Sie die folgenden Schritte aus:To use this module, complete the following steps:

  • Wählen Sie zuerst die Spalte, die den eingegebenen Text enthält (in diesem Beispiel "Col2").First, select the column that contains the input text ("Col2" in this example).
  • Legen Sie dann "Hashing bitsize" auf 8 fest, d. h. 2^8 = 256 Features werden erstellt.Second, set the "Hashing bitsize" to 8, which means 2^8=256 features will be created. Die Wörter/Ausdrücke im gesamten Text werden auf 256 Indizes gehasht.The word/phase in all the text will be hashed to 256 indices. Der Parameter "Hashing bitsize" reicht von 1 bis 31.The parameter "Hashing bitsize" ranges from 1 to 31. Die Wörter/Ausdrücke werden mit geringerer Wahrscheinlichkeit in den gleichen Index gehasht, wenn eine größere Zahl festgelegt wird.The word(s)/phrase(s) are less likely to be hashed into the same index if setting it to be a larger number.
  • Setzen Sie dann den Parameter "N-grams" auf 2.Third, set the parameter "N-grams" to 2. Mit diesem Wert wird die Häufigkeit der Unigramme (ein Feature für jedes einzelne Wort) und Bigramme (ein Feature für jedes Paar angrenzender Wörter) aus dem Eingabetext abgerufen.This value gets the occurrence frequency of unigrams (a feature for every single word) and bigrams (a feature for every pair of adjacent words) from the input text. Der Parameter "N-grams" reicht von 0 bis 10, wodurch die maximale Anzahl sequenzieller Wörter in einem Feature angezeigt wird.The parameter "N-grams" ranges from 0 to 10, which indicates the maximum number of sequential words to be included in a feature.

"Feature Hashing"-Modul

Die folgende Abbildung zeigt, wie dieses neue Feature aussehen wird.The following figure shows what these new feature look like.

"Feature Hashing"-Beispiel

ZusammenfassungConclusion

Entwickelte und ausgewählte Features steigern die Effizienz des Trainingsprozesses, der versucht, die in den Daten enthaltenen Schlüsselinformationen zu extrahieren.Engineered and selected features increase the efficiency of the training process, which attempts to extract the key information contained in the data. Sie verbessern auch die Leistungsfähigkeit dieser Modelle für eine exakte Klassifizierung der Eingabedaten und verlässlichere Vorhersagen von Ergebnissen, die von Interesse sind.They also improve the power of these models to classify the input data accurately and to predict outcomes of interest more robustly.

Entwicklung und Auswahl von Features können auch kombiniert werden, damit das Lernen besser rechnerisch verfolgt werden kann.Feature engineering and selection can also combine to make the learning more computationally tractable. Dies erfolgt durch eine Erweiterung und anschließende Verringerung der Anzahl von Features zum Kalibrieren oder Trainieren eines Modells.It does so by enhancing and then reducing the number of features needed to calibrate or train a model. Mathematisch gesehen stehen die ausgewählten Features für einen minimalen Satz von unabhängigen Variablen, die Muster in den Daten erklären und erfolgreich Vorhersageergebnisse liefern.Mathematically, the selected features are a minimal set of independent variables that explain the patterns in the data and predict outcomes successfully.

Feature Engineering bzw. Featureauswahl muss nicht immer unbedingt erfolgen.It's not always necessarily to perform feature engineering or feature selection. Dies hängt von den Daten, dem ausgewählten Algorithmus und dem Ziel des Experiments ab.It depends on the data, the algorithm selected, and the objective of the experiment.

Nächste SchritteNext steps

Informationen zum Erstellen von Features für Daten in bestimmten Umgebungen finden Sie in den folgenden Artikeln:To create features for data in specific environments, see the following articles: