公開日:2024年1月20日
寄稿者:Jacob Murel Ph.D.、Eda Kavlakoglu
特徴量エンジニアリングでは、未加工データを前処理して、機械で読み取り可能な形式に変換します。適切な特徴量を変換し選択することによって、MLモデルの性能を最適化します。
特徴量エンジニアリングとは、未加工データを機械学習モデルで使用するための適切な情報に変換するプロセスです。別の言い方で表現すると、特徴量エンジニアリングは予測モデルの特徴量を作成するプロセスです。特徴量は、モデルの予測を生成するために使用する入力変数で、次元とも呼ばれます。モデルの性能はトレーニング中に使用するデータの品質によって大きく変わるため、特徴量エンジニアリングは非常に重要な前処理の手法です。未加工のトレーニング・データのうちで、検討中の予測タスクとモデル・タイプの両方に対して最も関連性の高い側面を選択する必要があります。1
先へ進む前に、用語について簡単に説明しておきます。多くの資料では、モデル変数を作成する処理を示すために、特徴量エンジニアリングと特徴量抽出を同じ意味で用いています。2資料によっては、元の特徴量空間をより低次元の特徴量空間に再マッピングすることを表すために特徴量抽出という言葉を用いている場合もあります。3一方で、特徴量選択は次元削減の一形態です。具体的には、多重共線性を抑えることを目的として新しいモデルを作成し、それによってモデルの一般化可能性と最適化を最大限に確保するために、変数のサブセットを選択する処理を表します。
IBM watsonxの理解を深め、統計データ・セットを使用して機械学習モデルを作成する方法を学びます。
IBMニュースレターの購読
モデルの性能は基盤となるデータの品質によって左右されるため、データサイエンティストは高品質のモデルを作成するためのデータ準備と特徴量作成に多くの時間を費やします。未加工データの複雑さと目的の予測モデルに応じて、特徴量エンジニアリングには多くの試行錯誤が必要になる場合があります。
特徴量エンジニアリングを個別のステップに分解して説明している資料やオンライン・チュートリアルもいくつかありますが、通常はステップの数や名称がそれぞれ異なっています。例えば、特徴量理解、構造化または構築、変換、評価、最適化などのステップが考えられます。4このように階層化することは、特徴量エンジニアリングで必要になるタスクの概要を説明するうえでは役立つ可能性があるものの、特徴量エンジニアリングが直線的なプロセスであるかのような印象を与えます。実際には、特徴量エンジニアリングは反復的なプロセスです。
特徴量エンジニアリングはコンテキストに依存します。その実行にはかなりのデータ分析とドメイン知識が必要です。なぜなら、特徴量の効果的なエンコーディングは、使用するモデルの種類、予測変数と出力の関係、モデルが取り組む問題によって決まるためです。5加えて、データ・セットにはさまざまな種類があります。例えばテキストと画像のように、データ・セットの種類の違いによっても、特徴量エンジニアリングの手法の向き不向きが異なる場合があります。6したがって、特定の機械学習アルゴリズムの中で特徴量エンジニアリングを実施する最適な方法を具体的に述べるのは難しい場合があります。
特徴量エンジニアリングに普遍的な手法やパイプラインはないものの、さまざまなデータ・タイプからさまざまなモデル向けに特徴量を作成するために使用される共通のタスクがいくつかあります。しかし、こうした手法を導入する前に、徹底的なデータ分析を行って、目的の問題に対処するうえで関連する特徴量と、適切な特徴量の数を判断する必要があります。さらに、例えば欠損データや欠損値の補完など、データ・クリーニングや前処理のさまざまな手法を導入することと、モデルの予測に悪影響を及ぼす可能性のある外れ値に対処することが最善です。
特徴量変換とは、ある種類の特徴量を、特定のモデルにとっての可読性がより高い、別の形式に変換するプロセスです。連続データからカテゴリー・データへの変換や、その逆の変換で構成されています。
ビニング。この手法では基本的に、連続した数値をカテゴリー別の特徴量に変換します。具体的には、ビニングではそれぞれの値を周囲の値の区域と比較し、データ・ポイントをいくつかのビンに分類します。基本的なビニングの例が年齢人口統計で、連続した年齢をいくつかの年齢グループに分割します。例えば18~25歳、25~30歳などです。値をビンに分類したら、さらに平均値や中央値、境界値を用いてビンを平滑化できます。ビンの平滑化では、ビンに含まれる値をビンから導き出した値に置き換えます。例えば、18~25歳の年齢値を含むビンを、平均を用いて平滑化する場合、そのビンに含まれるそれぞれの値を、ビンの値の平均値に置き換えます。ビニングでは、連続する値からカテゴリー値を作成します。ビンの平滑化は、入力データのノイズを減らすことを目的とした局所的な平滑化の一種です。7
ワンホット・エンコーディング。これはビニングの逆で、カテゴリー変数から数値特徴量を作成します。ワンホット・エンコーディングは、カテゴリー特徴量をバイナリー表現に対応付け、それらを使って特徴量を行列またはベクトル空間でマッピングします。文献では、このバイナリー表現は主にダミー変数と呼ばれています。ワンホット・エンコーディングは順序を無視するため、名義カテゴリーでの使用に最適です。Bag of Wordsモデルは、自然言語処理のタスクで頻繁に用いられるワンホット・エンコーディングの例です。ワンホット・エンコーディングの別の例にはスパム・フィルタリングの分類があり、スパムとスパム以外のカテゴリーをそれぞれ1と0に変換します。8
特徴量抽出は、モデルの新しい次元空間を作成する手法です。これは、複数の変数を新しい代理変数に統合することによって行うか、またはモデルの特徴量空間の次元を削減する目的で行います。9一方、特徴量選択は、モデルを表現するうえで最も関連性が高い特徴量のサブセットを選択するための手法を指します。特徴量抽出と特徴量選択はどちらも次元削減の一種であるため、多数の特徴量が関係し利用可能なデータ・サンプルが限られている回帰の問題に適しています。
主成分分析。主成分分析(PCA)は一般的な特徴抽出手法であり、データセットの元の複数の特徴を組み合わせて変換することで、主成分と呼ばれる新しい特徴を生成します。PCAでは、モデルの元の変数セットに存在するバリアンスの大部分またはすべてを構成する変数サブセットをモデルから選択します。PCAでは続いて、この変数サブセットで定義される新しい空間にデータを投影します。10
線形判別分析。線形判別分析(LDA)は表面上、モデルデータを新しい低次元空間に投影するという点でPCAとは似ています。PCAと同様、このモデル空間の次元(または特徴)は、初期モデルの特徴から派生します。ただし、LDAは、元のデータセットに分類ラベルを保持することに関して、PCAとは異なります。PCAでは、データのバリアンスを最大化するために新しいコンポーネント変数を生成しますが、LDAでは、データのクラス差異を最大化することを主目的としてコンポーネント変数を生成します。11
ある特定の特徴では、データに内在する上限値や下限値によって、可能な特徴値が制限されます。時系列データや年齢などがこれにあたります。しかし、モデル特徴の可能な値には制限がないことも多く、そのような場合に特徴のスケール(特徴の最低値と最高値の差)が大きいと、特定のモデルに悪影響を及ぼすことがあります。特徴量スケーリング(特徴正規化と呼ばれることもある)は1つの標準化技法であり、特徴量を再スケーリングして、スケールが大きいことによるモデルへの影響を制限するものです。12特徴変換では、データをあるタイプから別のタイプに変換しますが、特徴量スケーリングはデータを範囲と分布の観点から変換するものであり、元のデータタイプは維持されます。13
ミニマックススケーリング。ミニマックススケーリングでは、所与の特徴のすべての値を再スケーリングして、指定した最小値と最大値(多くの場合0と1)の間に入るようにします。各データポイントで選択した特徴の値(xで表される)は、決定した最小特徴値と最大特徴値( min(x)とmax(x))に対して計算され、そこからそのデータポイントの新しい特徴値(x̃で表される)が生成されます。ミニマックススケーリングは次の式で計算します。14
Zスコアスケーリング。文献では、これを標準化、バリアンススケーリングと呼ぶこともあります。ミニマックススケーリングでは、特徴値をスケーリングして指定の最小値と最大値の範囲内に収まるようにしますが、Zスコアスケーリングでは、特徴量を再スケーリングして共通標準偏差1の平均が0になるようにします。Zスコアスケーリングは次の式で表されます。
ここでは、所与の特徴量(x)を、再スケーリングした特徴量の平均に対して計算し、標準化した標準偏差(sqrt(var(x))と表現)で除算します。Zスコアスケーリングは、PCAやLDAのような特徴抽出手法を導入する場合に有用です。この2つの手法では、特徴間で同じスケールが共有されることを要するためです。15
自動化。自動特徴量エンジニアリングは確かに、数十年にわたって研究が進められている分野です。16「tsflex」や「featuretools」などののPythonライブラリは、時系列データの特徴抽出と変換を自動化する助けとなります。開発者は、線形回帰モデルなどのデータタイプの特徴エンジニアリングを自動化するパッケージやアルゴリズムを新しくし続けることで、モデルの精度を高めています。17ごく最近の自動特徴量エンジニアリングは、自動機械学習(AutoML)システムを構築するという大規模な試みの一環として位置付けられています。その目的は、機械学習を専門家以外の人にも利用しやすいものにすることです。18
ディープラーニング(深層学習)。特徴量エンジニアリングは、多大な試行錯誤を伴うため、時間も労力もかかるプロセスです。ディープラーニングでは、ユーザーが小規模で基本的な特徴セットを指定すると、それをニューラル・ネットワーク・アーキテクチャによって高レベルの特徴(表現とも呼ばれる)に集約するようにします。19その一例はコンピュータービジョン、画像処理とパターン認識です。そこでモデルに学習させるにあたっては、意味論的に有意なオブジェクト(例:車、人など)をシンプルな概念(例:エッジ、輪郭など)の観点で、特徴マップを連結させて行います。20しかし、最近の研究では、特徴エンジニアリングとニューラル・ネットワークなどのディープラーニング技法とを組み合わせることで、不正検出などの分類タスクで有望な結果を出しています。21
1 Alice Zheng、Amanda Casari、Feature Engineering for Machine Learning、O’Reilly、2018年。Sinan Ozdemir、Divya Susarla、Feature Engineering Made Easy、Packt、2018年。
2 Yoav Goldberg、Neural Network Methods for Natural Language Processing、Springer、2022年。
3 Suhang Wang、Jiliang Tang、Huan Liu「Feature Selection」、Encyclopedia of Machine Learning and Data Mining、Springer、2017年。
4 Sinan Ozdemir、Feature Engineering Bookcamp、Manning Publications、2022年。Sinan Ozdemir、Divya Susarla、Feature Engineering Made Easy、Packt、2018年。
5 Max Kuhn、Kjell Johnson、Applied Predictive Modeling、Springer、2016年。
6 Alice Zheng、Amanda Casari、Feature Engineering for Machine Learning、O’Reilly、2018年。
7 Jaiwei Han、Data Mining: Concepts and Techniques(3rd edition)、2012年。
8 Kevin Murphy、Machine Learning: A Probabilistic Perspective、MIT Press、2012年。Soledad Galli、Python Feature Engineering Cookbook(2nd edition)、Packt、2022年。
9 Max Kuhn、Kjell Johnson、Applied Predictive Modeling、Springer、2016年。
10 I.T. Jollife、Principal Component Analysis、Springer、2002年。
11 Chris Albon、Machine Learning with Python Cookbook、O’Reilly、2018年。
12 Alice Zheng、Amanda Casari、Feature Engineering for Machine Learning、O’Reilly、2018年。
13 Zahraa Abdallah、Lan Du、Geoffrey Webb『Data preparation』、Encyclopedia of Machine Learning and Data Mining、Springer、2017年。
12 Alice Zheng、Amanda Casari、Feature Engineering for Machine Learning、O’Reilly、2018年。
15 Zahraa Abdallah、Lan Du、Geoffrey Webb『Data preparation』、Encyclopedia of Machine Learning and Data Mining、Springer、2017年。Alice Zheng、Amanda Casari、Feature Engineering for Machine Learning、O’Reilly、2018年。
16 James Kanter、Kalyan Veeramachaneni『Deep feature synthesis: Towards automating data science endeavors』、IEEE International Conference on Data Science and Advanced Analytics、2015年、https://ieeexplore.ieee.org/document/7344858(ibm.com外部へのリンク)。
17 Udayan Khurana、Deepak Turaga、Horst Samulowitz、Srinivasan Parthasrathy『Cognito: Automated Feature Engineering for Supervised Learning』、IEEE 16th International Conference on Data Mining Workshops、2016年、pp. 1304-130、https://ieeexplore.ieee.org/abstract/document/7836821(ibm.com外部へのリンク)。Franziska Horn、Robert Pack、Michael Rieger『The autofeat Python Library for Automated Feature Engineering and Selection』、Joint European Conference on Machine Learning and Knowledge Discovery in Databases、2019年、pp. 111-120、 https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10(ibm.com外部へのリンク)。
18 Ahmad Alsharef、Karan Aggarwal、Sonia Manoj Kumar、Ashutosh Mishra『Review of ML and AutoML Solutions to Forecast Time‑Series Data』、Archives of Computational Methods in Engineering(Vol. 29)、2022年、pp. 5297–5311、https://link.springer.com/article/10.1007/s11831-022-09765-0(ibm.com外部へのリンク)。Sjoerd Boeschoten、Cagatay Catal、Bedir Tekinerdogan、Arjen Lommen、Marco Blokland『The automation of the development of classification models andimprovement of model quality using feature engineering techniques』、Expert Systems with Applications(Vol. 213)、2023年、https://www.sciencedirect.com/science/article/pii/S0957417422019303(ibm.com外部へのリンク)。Shubhra Kanti Karmaker、Mahadi Hassan、Micah Smith、Lei Xu、Chengxiang Zhai、Kalyan Veeramachaneni『AutoML to Date and Beyond: Challenges and Opportunities』、ACM Computing Surveys(Vol. 54、No. 8)、2022年、pp. 1-36、https://dl.acm.org/doi/abs/10.1145/3470918(ibm.com外部へのリンク)。
19 Yoav Goldberg、Neural Network Methods for Natural Language Processing、Springer、2022年。
20 Ian Goodfellow、Yoshua Bengio、Aaron Courville、Deep Learning、MIT Press、2016年、https://www.deeplearningbook.org/(ibm.com外部へのリンク)。
21 Xinwei Zhang、Yaoci Han、Wei Xu、Qili Wang「HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture," Information Sciences」(Vol. 557)、2021年、pp. 302-316、https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X(ibm.com外部へのリンク)。Daniel Gibert、Jordi Planes、Carles Mateu、Quan Le『Fusing feature engineering and deep learning: A case study for malware classification』、Expert Systems with Applications(Vol. 207)、2022 年、 https://www.sciencedirect.com/science/article/pii/S0957417422011927(ibm.com外部へのリンク)。Ebenezerm Esenogho、Ibomoiye Domor Mienye、Theo Swart、Kehinde Aruleba、George Obaido『A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection』、IEEE Access(Vol. 10)2020年、pp. 16400-16407、https://ieeexplore.ieee.org/abstract/document/9698195(ibm.com外部へのリンク)。