データ サイエンスにおける特徴エンジニアリングFeature engineering in data science

この記事では、特徴エンジニアリングと、機械学習のデータ強化におけるその役割について説明します。In this article, you learn about feature engineering and its role in enhancing data in machine learning. Azure Machine Learning Studio (classic) の実験から引用された、わかりやす例から学びます。Learn from illustrative examples drawn from Azure Machine Learning Studio (classic) experiments.

  • 特徴エンジニアリング:生データから新しい特徴を作成して、学習アルゴリズムの予測能力を向上させるプロセス。Feature engineering: The process of creating new features from raw data to increase the predictive power of the learning algorithm. エンジニアリングされた特徴は、元の特徴セットでは簡単にはわからない追加情報を取得する必要があります。Engineered features should capture additional information that is not easily apparent in the original feature set.
  • 特徴選択: トレーニング問題の次元を削減するために、特徴の主要なサブセットを選択するプロセス。Feature selection: The process of selecting the key subset of features to reduce the dimensionality of the training problem.

通常、最初に特徴エンジニアリングが追加の特徴を生成するために適用され、その後、無関係な特徴、重複した特徴、関連性の高い特徴を排除するために特徴選択が実行されます。Normally feature engineering is applied first to generate additional features, and then feature selection is done to eliminate irrelevant, redundant, or highly correlated features.

特徴エンジニアリングと選択は、Team Data Science Process (TDSP) のモデリング ステージの一部です。Feature engineering and selection are part of the modeling stage of the Team Data Science Process (TDSP). TDSP とデータ サイエンス ライフサイクルの詳細については、「Team Data Science Process とは」を参照してください。To learn more about the TDSP and the data science lifecycle, see What is the TDSP?

特徴エンジニアリングとはWhat is feature engineering?

トレーニング データは、行と列から成るマトリックスで構成されています。Training data consists of a matrix composed of rows and columns. マトリックスの各行は、観測またはレコードです。Each row in the matrix is an observation or record. 各行の列は、各レコードを表す特徴です。The columns of each row are the features that describe each record. 実験計画で指定された特徴は、データ内のパターンを特徴付ける必要があります。The features specified in the experimental design should characterize the patterns in the data.

生のデータ フィールドの多くはモデルのトレーニングに直接使用できますが、多くの場合、強化されたトレーニング データ セット用に追加の (エンジニアリングされた) 特徴が作成される必要があります。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.

トレーニングを強化するためのエンジニアリングされた特徴により、データ内のパターンをより適切に識別する情報が提供されます。Engineered features that enhance training provide information that better differentiates the patterns in the data. ただし、このプロセスは芸術のようなものです。But this process is something of an art. 正当な生産性の高い意思決定は、多くの場合、各分野の専門知識が必要です。Sound and productive decisions often require domain expertise.

例 1:回帰モデルに時間的な特徴を追加するExample 1: Add temporal features for a regression model

Azure Machine Learning Studio (classic) の自転車レンタルの需要予測実験を使用して、回帰タスクの特徴をエンジニアリングする方法を見てみましょう。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. この実験の目的は、特定の月、日、または時間における自転車レンタルの需要を予測することです。The objective of this experiment is to predict the demand for bike rentals within a specific month/day/hour.

自転車レンタルのデータセットBike rental dataset

自転車レンタル UCI データセットは、米国の自転車シェア会社の実際のデータに基づいたものです。The Bike Rental UCI dataset is based on real data from a bike share company based in the United States. 2011 年と 2012 年の、1 日の特定の時間帯の自転車レンタルの数を表しています。It represents the number of bike rentals within a specific hour of a day for the years 2011 and 2012. 17,379 行、17 列が含まれています。It contains 17,379 rows and 17 columns.

生の特徴セットには、気象条件 (温度 / 湿度 / 風速) やその日の種類 (休日 / 平日) が含まれます。The raw feature set contains weather conditions (temperature/humidity/wind speed) and the type of the day (holiday/weekday). 予測するフィールドはカウントです。これは、特定の時間帯の自転車レンタルを表しています。The field to predict is the count, which represents the bike rentals within a specific hour. カウントの範囲は 1 から 977 です。Count ranges from 1 to 977.

特徴エンジニアリング実験を作成するCreate a feature engineering experiment

トレーニング データに効果的な特徴を構築することを目標として、4 つの回帰モデルは同じアルゴリズムを使用して構築されましたが、トレーニング データセットはそれぞれ異なります。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. 次の 4 つのデータセットは同じ生の入力データを表しますが、特徴セットの数は増加しています。The four datasets represent the same raw input data, but with an increasing number of features set. これらの特徴は、次の 4 つのカテゴリに分類されます。These features are grouped into four categories:

  1. A = 予測日の天候 + 休日 + 平日 + 週末の各特徴A = weather + holiday + weekday + weekend features for the predicted day
  2. B = 過去 12 時間ごとにレンタルされた自転車の数B = number of bikes that were rented in each of the previous 12 hours
  3. C = 過去 12 日ごとにレンタルされた自転車の数 (同じ時間帯)C = number of bikes that were rented in each of the previous 12 days at the same hour
  4. D = 過去 12 週ごとにレンタルされた自転車の数 (同じ時間帯、同じ日)D = number of bikes that were rented in each of the previous 12 weeks at the same hour and the same day

元の生データに既に存在する特徴セット A のほかに、他の 3 つの特徴セットが特徴エンジニアリング プロセスによって作成されます。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. 特徴セット B では、直近の自転車の需要を収集します。Feature set B captures recent demand for the bikes. 特徴セット C では、特定の時間帯の自転車の需要を収集します。Feature set C captures the demand for bikes at a particular hour. 特徴セット D では、特定の曜日の特定の時間帯の自転車の需要を収集します。Feature set D captures demand for bikes at particular hour and particular day of the week. この 4 つのトレーニング データセットは、それぞれ A、A+B、A+B+C、A+B+C+D の特徴セットを含んでいます。The four training datasets each includes feature set A, A+B, A+B+C, and A+B+C+D, respectively.

Studio (classic) を使用した特徴エンジニア リングFeature engineering using Studio (classic)

Studio (classic) の実験では、これら 4 つのトレーニング データセットは、前処理された入力データセットからの 4 つの分岐を使用して形成されます。In the Studio (classic) experiment, these four training datasets are formed via four branches from the pre-processed input dataset. 一番左の分岐を除いて、これらの各分岐には R スクリプトの実行モジュールが含まれており、ここで生成された特徴 (特徴セット B、C、D) が構築され、インポートされたデータセットに追加されます。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.

次の図は、左の 2 番目の分岐にある特徴セット B の作成に使用される R スクリプトを示します。The following figure demonstrates the R script used to create feature set B in the second left branch.

特徴を定義する

結果Results

4 つのモデルのパフォーマンス結果の比較を次の表にまとめています。A comparison of the performance results of the four models is summarized in the following table:

結果の比較

特徴 A+B+C よって最適な結果が表示されます。The best results are shown by features A+B+C. トレーニング データに特徴セットを追加すると、エラー率は低下します。The error rate decreases when additional feature set are included in the training data. これにより、特徴セット B、C は、関連する追加情報を回帰タスクに提供するという推測が検証されます。It verifies the presumption that the feature set B, C provide additional relevant information for the regression task. ただし、D の特徴を追加しても、エラー率はそれ以上は低下しないようです。But adding the D feature does not seem to provide any additional reduction in the error rate.

例 2: テキスト マイニング用の特徴を作成するExample 2: Create features for text mining

特徴エンジニアリングは、ドキュメントの分類や感情分析などのテキスト マイニングに関連するタスクに広く適用されています。Feature engineering is widely applied in tasks related to text mining such as document classification and sentiment analysis. 通常、未加工のテキストの各部分が入力データとして機能するため、出現する単語や語句の頻度を含む特徴を作成するために特徴エンジニアリング プロセスが必要になります。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 hashing

このタスクを実現するには、"特徴ハッシュ" と呼ばれる手法を適用して、任意のテキストの特徴を効率的にインデックスに変えます。To achieve this task, a technique called feature hashing is applied to efficiently turn arbitrary text features into indices. 各テキストの特徴 (単語や語句) を特定のインデックスに関連付ける代わりに、このメソッドではハッシュ関数が特徴に適用され、そのハッシュ値が直接インデックスとして使用されます。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) には、これらの単語や語句の特徴を便利に作成できる特徴ハッシュ モジュールがあります。In Studio (classic), there is a Feature Hashing module that creates word/phrase features conveniently. このモジュールを使用する例を次に示します。Following figure shows an example of using this module. 入力データセットには、1 ~ 5 の書籍の評価と実際のレビュー内容の 2 つ列が含まれています。The input dataset contains two columns: the book rating ranging from 1 to 5, and the actual review content. このモジュールの目的は、特定の書籍レビュー内の対応する単語や語句の出現頻度を示す一連の新しい特徴を取得することです。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. このモジュールを使用するには、次の手順を実行します。To use this module, complete the following steps:

  • まず、入力テキストが含まれている列を選択します (この例では "Col2")。First, select the column that contains the input text ("Col2" in this example).
  • 次に、"Hashing bitsize" を 8 に設定します。これにより、2 ^8 = 256 の特徴が作成されます。Second, set the "Hashing bitsize" to 8, which means 2^8=256 features will be created. すべてのテキストの単語や語句は、256 のインデックスにハッシュされます。The word/phase in all the text will be hashed to 256 indices. "Hashing bitsize" パラメーターの範囲は 1 ~ 31 です。The parameter "Hashing bitsize" ranges from 1 to 31. 単語や語句は、大きな数値を設定すれば、同じインデックスにハッシュされる可能性はほとんどありません。The word(s)/phrase(s) are less likely to be hashed into the same index if setting it to be a larger number.
  • 最後に、"N-grams" パラメーターを 2 に設定します。Third, set the parameter "N-grams" to 2. この値は、入力テキストからユニグラム (単語ごとの特徴) とバイグラム (隣接する2 単語ごとの特徴) の出現頻度を取得します。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. "N-grams" パラメーターの範囲は 0 ~ 10 で、特徴に含まれる最大の連続単語数を示します。The parameter "N-grams" ranges from 0 to 10, which indicates the maximum number of sequential words to be included in a feature.

”特徴ハッシュ” モジュール

次の図は、これらの新しい特徴の外観を示しています。The following figure shows what these new feature look like.

”特徴ハッシュ” の例

まとめConclusion

エンジニアリングされ、選択された特徴は、データに含まれるキー情報の抽出を試みるトレーニング プロセスの効率を高めます。Engineered and selected features increase the efficiency of the training process, which attempts to extract the key information contained in the data. また、入力データを正確に分類して、関心のある結果をより確実に予測するために、これらのモデルのパワーを向上させます。They also improve the power of these models to classify the input data accurately and to predict outcomes of interest more robustly.

特徴エンジニアリングと特徴選択は、学習を計算的により扱いやすくするために組み合わせることもできます。Feature engineering and selection can also combine to make the learning more computationally tractable. これは、強化した後、モデルの調整やトレーニングに必要な特徴の数を減らすことによって行われます。It does so by enhancing and then reducing the number of features needed to calibrate or train a model. 数学的には、選択される特徴は、データのパターンを説明し、正常に結果を予測する独立変数の最小セットです。Mathematically, the selected features are a minimal set of independent variables that explain the patterns in the data and predict outcomes successfully.

常に特徴エンジニアリングや特徴選択を実行する必要があるわけではありません。It's not always necessarily to perform feature engineering or feature selection. データ、選択されているアルゴリズム、および実験の目的によって異なります。It depends on the data, the algorithm selected, and the objective of the experiment.

次のステップNext steps

特定の環境でデータの特徴を作成するには、次の記事を参照してください。To create features for data in specific environments, see the following articles: