IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
特徴量エンジニアリングでは、未加工データを前処理して、機械で読み取り可能な形式に変換します。適切な特徴量を変換し選択することによって、MLモデルの性能を最適化します。
特徴量エンジニアリングとは、未加工データを機械学習モデルで使用するための適切な情報に変換するプロセスです。別の言い方で表現すると、特徴量エンジニアリングは予測モデルの特徴量を作成するプロセスです。特徴量は、モデルの予測を生成するために使用する入力変数で、次元とも呼ばれます。モデルの性能はトレーニング中に使用するデータの品質によって大きく変わるため、特徴量エンジニアリングは非常に重要な前処理の手法です。未加工のトレーニング・データのうちで、検討中の予測タスクとモデル・タイプの両方に対して最も関連性の高い側面を選択する必要があります。1
先へ進む前に、用語について簡単に説明しておきます。多くの資料では、モデル変数を作成する処理を示すために、特徴量エンジニアリングと特徴量抽出を同じ意味で用いています。2元の特徴量空間をより低次元の特徴量空間に再マッピングすることを表すために特徴量抽出という言葉を用いている場合もあります。3一方で、特徴量選択は次元削減の一形態です。具体的には、多重共線性を抑えることを目的として新しいモデルを作成し、それによってモデルの一般化可能性と最適化を最大限に確保するために、変数のサブセットを選択する処理を表します。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくは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 Pythonライブラリー「tsflex」や「featuretools」は、時系列データの特徴量の抽出と変換の自動化を支援します。開発者は、線形回帰モデルなどのデータタイプの特徴エンジニアリングを自動化するパッケージやアルゴリズムを新しくし続けることで、モデルの精度を高めています。17ごく最近の自動特徴量エンジニアリングは、自動機械学習(AutoML)システムを構築するという大規模な試みの一環として位置付けられています。その目的は、機械学習を専門家以外の人にも利用しやすいものにすることです。18
ディープラーニング。特徴量エンジニアリングは、多大な試行錯誤を伴うため、時間も労力もかかるプロセスです。ディープラーニングでは、ユーザーが小規模で基本的な特徴セットを指定すると、それをニューラル・ネットワーク・アーキテクチャによって高レベルの特徴(表現とも呼ばれる)に集約するようにします。19その一例はコンピューター・ビジョン、画像処理とパターン認識です。そこでモデルに学習させるにあたっては、意味論的に有意なオブジェクト(例:車、人など)をシンプルな概念(例:エッジ、輪郭など)の観点で、特徴マップを連結させて行います。20しかし、最近の研究では、特徴エンジニアリングとニューラル・ネットワークなどのディープラーニング技法とを組み合わせることで、不正検出などの分類タスクで有望な結果を出しています。21
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
1 Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O’Reilly. 2018. Sinan Ozdemir and Divya Susarla. Feature Engineering Made Easy [Feature engineering made easy]. Packt. 2018.
2 Yoav Goldberg. Neural Network Methods for Natural Language Processing [Neural network methods for natural language processing]. Springer. 2022.
3 Suhang Wang, Jiliang Tang, and Huan Liu. “Feature Selection” [Feature selection]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017.
4 Sinan Ozdemir. Feature Engineering Bookcamp [Feature engineering bootcamp]. Manning Publications. 2022. Sinan Ozdemir and Divya Susarla. Feature Engineering Made Easy [Feature engineering made easy]. Packt. 2018.
5 Max Kuhn and Kjell Johnson. Applied Predictive Modeling [Applied predictive modeling]. Springer. 2016.
6 Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O’Reilly. 2018.
7 Jiawei Han. Data Mining: Concepts and Techniques [Data mining: concepts and techniques]. 3rd edition. 2012.
8 Kevin Murphy. Machine Learning: A Probabilistic Perspective [Machine learning: a probabilistic perspective]. MIT Press. 2012. Soledad Galli. Python Feature Engineering Cookbook [Python feature engineering cookbook]. 2nd edition. Packt. 2022.
9 Max Kuhn and Kjell Johnson. Applied Predictive Modeling [Applied predictive modeling]. Springer. 2016.
10 I.T. Jolliffe. Principal Component Analysis [Principal component analysis]. Springer. 2002.
11 Chris Albon. Machine Learning with Python Cookbook [Machine learning with Python cookbook]. O’Reilly. 2018.
12 Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O’Reilly. 2018.
13 Zahraa Abdallah, Lan Du, and Geoffrey Webb. “Data preparation” [Data preparation]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017.
14 Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O’Reilly. 2018.
15 Zahraa Abdallah, Lan Du, and Geoffrey Webb. “Data preparation” [Data preparation]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017. Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O’Reilly. 2018.
16 James Kanter and Kalyan Veeramachaneni. “Deep feature synthesis: Towards automating data science endeavors” [Deep feature synthesis: toward automating data-science work]. IEEE International Conference on Data Science and Advanced Analytics. 2015. https://ieeexplore.ieee.org/document/7344858.
17 Udayan Khurana, Deepak Turaga, Horst Samulowitz, and Srinivasan Parthasrathy. “Cognito: Automated Feature Engineering for Supervised Learning” [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. Franziska Horn, Robert Pack, and Michael Rieger. “The autofeat Python Library for Automated Feature Engineering and Selection” [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.
18 Ahmad Alsharef, Karan Aggarwal, Sonia, Manoj Kumar, and Ashutosh Mishra. “Review of ML and AutoML Solutions to Forecast Time-Series Data” [Review of ML and AutoML solutions for forecasting 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. Sjoerd Boeschoten, Cagatay Catal, Bedir Tekinerdogan, Arjen Lommen, and Marco Blokland. “The automation of the development of classification models and improvement of model quality using feature engineering techniques” [Automation of classification-model development and quality improvement using feature-engineering techniques]. Expert Systems with Applications. Vol. 213. 2023. https://www.sciencedirect.com/science/article/pii/S0957417422019303. Shubhra Kanti Karmaker, Mahadi Hassan, Micah Smith, Lei Xu, Chengxiang Zhai, and Kalyan Veeramachaneni. “AutoML to Date and Beyond: Challenges and Opportunities” [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.
19 Yoav Goldberg. Neural Network Methods for Natural Language Processing [Neural network methods for natural language processing]. Springer. 2022.
20 Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning. MIT Press. 2016. https://www.deeplearningbook.org/.
21 Xinwei Zhang, Yaoci Han, Wei Xu, and Qili Wang. “HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture” [HOBA: a novel feature-engineering methodology for credit-card fraud detection using a deep-learning architecture]. Information Sciences. Vol. 557. 2021. pp. 302–316. https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X. Daniel Gibert, Jordi Planes, Carles Mateu, and Quan Le. “Fusing feature engineering and deep learning: A case study for malware classification” [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. Ebenezerm Esenogho, Ibomoiye Domor Mienye, Theo Swart, Kehinde Aruleba, and George Obaido. “A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection” [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.