Featureentwicklung im Data Science-ProzessFeature engineering in data science

Dieser Artikel erläutert den Zweck der Erstellung von Features und stellt Beispiele ihrer Rolle im Datenaufbereitungsprozess für maschinelles Lernen vor.This article explains the purposes of feature engineering and provides examples of its role in the data enhancement process of machine learning. Die Beispiele zur Veranschaulichung dieses Prozesses stammen aus Azure Machine Learning Studio.The examples used to illustrate this process are drawn from Azure Machine Learning Studio.

Dieser Task ist ein Schritt im Team Data Science-Prozess (TDSP).This task is a step in the Team Data Science Process (TDSP).

Bei der Featureentwicklung wird versucht, die Vorhersageleistung der Lernalgorithmen durch Erstellen von Merkmalen aus Rohdaten zu verbessern und mit diesen den Lernprozess zu vereinfachen.Feature engineering attempts to increase the predictive power of learning algorithms by creating features from raw data that help facilitate the learning process. Entwicklung und Auswahl von Features sind ein Teil des Team Data Science-Prozesses, der unter Was ist der Team Data Science-Prozesslebenszyklus? beschrieben ist.The engineering and selection of features is one part of the TDSP outlined in the What is the Team Data Science Process lifecycle? Entwicklung und Auswahl von Features sind Teile des Schritts Entwickeln von Features des TDSP.Feature engineering and selection are parts of the Develop features step of the TDSP.

  • Featureentwicklung: Bei diesem Prozess wird versucht, zusätzliche relevante Features aus den vorhandenen Rohfeatures in den Daten zu erstellen und die Vorhersageleistung des Lernalgorithmus zu steigern.feature engineering: This process attempts to create additional relevant features from the existing raw features in the data, and to increase the predictive power of the learning algorithm.
  • Featureauswahl: Dieser Prozess wählt bei dem Versuch, die Anzahl von Dimensionen des Trainingsproblems zu verringern, die wichtigste Teilmenge der ursprünglichen Datenfeatures aus.feature selection: This process selects the key subset of original data features in an attempt to reduce the dimensionality of the training problem.

Normalerweise wird die Featureentwicklung 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 the feature selection step is performed to eliminate irrelevant, redundant, or highly correlated features.

Die beim Machine Learning verwendeten Trainingsdaten können häufig durch Extrahieren von Features aus den gesammelten Rohdaten verbessert werden.The training data used in machine learning can often be enhanced by extraction of features from the raw data collected. Ein Beispiel für ein entwickeltes Feature im Kontext des Lernvorgangs, wie Bilder von handschriftlichen Zeichen klassifiziert werden, ist eine aus den Rohdaten der Bitverteilung erstellte Bitdichtekarte.An example of an engineered feature in the context of learning how to classify the images of handwritten characters is creation of a bit density map constructed from the raw bit distribution data. Diese Karte kann helfen, die Kanten der Zeichen effizienter als einfach mit der direkten Rohdatenverteilung zu ermitteln.This map can help locate the edges of the characters more efficiently than simply using the raw distribution directly.

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:

Probieren Sie Azure Machine Learning Studio aus (kostenpflichtige und kostenlose Versionen verfügbar).Try Azure Machine Learning Studio available in paid or free options.

Erstellen von Features aus Ihren Daten – FeatureentwicklungCreate features from your data - feature engineering

Die Trainingsdaten bestehen aus einer aus Bespielen zusammengesetzten Matrix (in Zeilen gespeicherte Datensätze oder Beobachtungen), von denen jedes eine Reihe von Features (in Spalten gespeicherten Variablen oder Feldern) aufweist.The training data consists of a matrix composed of examples (records or observations stored in rows), each of which has a set of features (variables or fields stored in columns). Die Features, die in der Experimentanordnung angegeben werden, beschreiben wahrscheinlich die Muster in den Daten.The features specified in the experimental design are expected to characterize the patterns in the data. Obwohl viele der Rohdatenfelder direkt in die ausgewählte Featuregruppe einbezogen werden können, die zum Trainieren eines Modells dient, müssen oft zusätzliche (entwickelte) Features aus den Features in den Rohdaten erstellt werden, um ein verbessertes Trainingsdataset generieren zu können.Although many of the raw data fields can be directly included in the selected feature set used to train a model, it is often the case that additional (engineered) features need to be constructed from the features in the raw data to generate an enhanced training dataset.

Welche Art von Features sollte erstellt werden, um das Dataset beim Trainieren eines Modells zu verbessern?What kind of features should be created to enhance the dataset when training a model? Entwickelte Features, die das Training verbessern, liefern Informationen, die die Muster in den Daten besser differenzieren.Engineered features that enhance the training provide information that better differentiates the patterns in the data. Die neuen Features sollen zusätzliche Informationen bereitstellen, die in den ursprünglichen oder vorhandenen Featuregruppen nicht eindeutig erfasst werden können oder nicht einfach ersichtlich sind.The new features are expected to provide additional information that is not clearly captured or easily apparent in the original or existing feature set. Doch dieser Prozess nicht einfach.But this process is something of an art. Fundierte und produktive Entscheidungen erfordern häufig ein gewisses Fachwissen.Sound and productive decisions often require some domain expertise.

Wenn Sie Azure Machine Learning zum ersten Mal verwenden, ist es am einfachsten, wenn Sie sich diesen Prozess anhand der Beispiele in Studio verdeutlichen.When starting with Azure Machine Learning, it is easiest to grasp this process concretely using samples provided in the Studio. Zwei Beispiele sind hier dargestellt:Two examples are presented here:

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 soll veranschaulichen, wie Features für Regressionsaufgaben entwickelt werden können.Let's use the experiment "Demand forecasting of bikes" in Azure Machine Learning Studio to demonstrate how to engineer features for a regression task. Dieses Experiment soll den Bedarf an Fahrrädern, d. h. die Anzahl von vermieteten Fahrrädern für einen bestimmten Monat/Tag/Stunde, vorhersagen.The objective of this experiment is to predict the demand for the bikes, that is, the number of bike rentals within a specific month/day/hour. Das Dataset "Bike Rental UCI" liefert die Rohdaten für die Eingabe.The dataset "Bike Rental UCI dataset" is used as the raw input data. Dieses Dataset basiert auf echten Daten des Unternehmens Capital Bikeshare, das eine Fahrradvermietung in Washington DC in den USA betreibt.This dataset is based on real data from the Capital Bikeshare company that maintains a bike rental network in Washington DC in the United States. Das Dataset stellt die Anzahl von geliehenen Fahrrädern zu einer bestimmten Tageszeit in den Jahren 2011 und 2012 dar und enthält 17.379 Zeilen und 17 Spalten.The dataset represents the number of bike rentals within a specific hour of a day in the years 2011 and year 2012 and contains 17379 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 der Zähler „cnt“, der die ausgeliehenen Fahrräder innerhalb einer bestimmten Tageszeit darstellt und von 1 bis 977 reicht.The field to predict is the "cnt" count, which represents the bike rentals within a specific hour and which ranges from 1 to 977.

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

Diese vier Trainingsdatasets werden im Azure Machine Learning-Experiment über vier Verzweigungen aus den vorbearbeiteten Eingabedatasets gebildet.In the Azure Machine Learning 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 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 respectively 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

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. Beachten Sie, dass die Fehlerrate niedriger ist, wenn eine zusätzliche Featuregruppe in den Trainingsdaten enthalten ist.Note that 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 beim Text MiningExample 2: Creating features in text mining

Die Featureentwicklung wird häufig in Aufgaben verwendet, die mit Text Mining 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. Wenn z.B. Dokumente in verschiedene Kategorien klassifiziert werden sollen, ist eine typische Annahme, dass die in der einen Dokumentkategorie enthaltenen Wörter/Ausdrücke mit geringerer Wahrscheinlichkeit in der anderen Dokumentkategorie auftreten.For example, when you want to classify documents into several categories, a typical assumption is that the word/phrases included in one doc category are less likely to occur in another doc category. Anders ausgedrückt kann die Häufigkeit der Verteilung von Wörtern und Ausdrücken verschiedene Dokumenttypen charakterisieren.In other words, the frequency of the words/phrases distribution is able to characterize different document categories. In Text Mining-Anwendungen, bei denen einzelne Teile des Textinhalts in der Regel als Eingabedaten dienen, ist der Featureentwicklungsprozess erforderlich, um Features in Zusammenhang mit Häufigkeiten von Wörtern/Ausdrücken zu erstellen.In text mining applications, because individual pieces of text-contents usually serve as the input data, the feature engineering process is needed to create the features involving word/phrase frequencies.

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 functions by applying a hash function to the features and using their hash values as indices directly.

Azure Machine Learning enthält ein Modul Feature Hashing , das diese Wort/Ausdruck-Features bequem erstellt.In Azure Machine Learning, there is a Feature Hashing module that creates these 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. Das Ziel dieses Feature Hashing -Moduls ist, 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 Feature Hashing 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 Features, die zum Trainieren des Modells ausgewählt werden, für einen minimalen Satz von unabhängigen Variablen, die Muster in den Daten erklären und dann erfolgreich Vorhersageergebnisse liefern.Mathematically speaking, the features selected to train the model are a minimal set of independent variables that explain the patterns in the data and then predict outcomes successfully.

Die Entwicklung bzw. Auswahl von Features muss nicht immer unbedingt erfolgen.It is not always necessarily to perform feature engineering or feature selection. Ob sie benötigt werden, hängt von den vorliegenden oder gesammelten Daten, dem ausgewählten Algorithmus und dem Ziel des Experiments ab.Whether it is needed or not depends on the data to hand or collected, the algorithm selected, and the objective of the experiment.