特徴量エンジニアリングとは?機械学習モデルの精度を高めるデータ加工術
特徴量エンジニアリングは機械学習モデルの予測精度を左右する最重要工程です。生データから有効な特徴量を生成・選択するプロセス、代表的な手法、ドメイン知識の活かし方を解説します。
特徴量エンジニアリングとは
特徴量エンジニアリング(Feature Engineering)とは、機械学習モデルに投入する入力変数(特徴量)を、生データから設計・生成・選択する一連のプロセスです。「データは新しい石油」と言われますが、原油のままでは使えないように、生データもそのままではモデルの精度を引き出せません。特徴量エンジニアリングは、データを「使える燃料」に精製する工程です。
機械学習の精度は「どのアルゴリズムを使うか」よりも「どのような特徴量を投入するか」に大きく依存します。Kaggle(機械学習コンペティション)の上位入賞者の多くが、アルゴリズムの工夫よりも特徴量の設計に時間を費やしていることからも、この工程の重要性がわかります。
コンサルタントがデータ分析プロジェクトに関わる際、ドメイン知識(業界・業務の専門知識)を特徴量設計に反映することが大きな付加価値となります。データサイエンティストが技術面を担い、コンサルタントがビジネス文脈を提供するという役割分担が成果を最大化します。
構成要素
特徴量エンジニアリングは「前処理→生成→選択」の3ステップで構成されます。
データ前処理
モデルが受け付ける形式にデータを整える工程です。欠損値の補完(平均値、中央値、最頻値、予測モデルによる補完)、外れ値の検出と処理(除外、ウィンソライズ、変換)、データ型の変換を行います。前処理の品質が後続のすべてのステップに影響するため、ここで手を抜くと特徴量の品質が全体的に低下します。
特徴量生成
既存のデータ列から新しい変数を作り出す工程です。代表的な手法は以下の通りです。
| 手法 | 内容 | 例 |
|---|---|---|
| 数学的変換 | 対数変換、べき乗変換で分布を調整する | 年収の対数変換 |
| ビニング | 連続値をカテゴリに離散化する | 年齢を10歳刻みのグループにする |
| 交互作用 | 複数の変数を掛け合わせて関係性を表現する | 面積 = 幅 x 奥行き |
| 集約 | グループごとの統計量を算出する | 顧客ごとの平均購入金額 |
| 時系列加工 | ラグ変数、移動平均、差分を作る | 前月売上、3ヶ月移動平均 |
| テキスト処理 | TF-IDF、単語埋め込みで数値化する | レビュー文のベクトル化 |
特徴量選択
生成した特徴量の中から、モデルの精度向上に寄与するものだけを選択する工程です。不要な特徴量は過学習の原因となり、学習時間を増加させます。フィルタ法(統計検定による単変量評価)、ラッパー法(モデルの精度を基準に反復的に評価)、埋め込み法(モデル自体が特徴量の重要度を算出)の3つのアプローチがあります。
実践的な使い方
ステップ1: 探索的データ分析(EDA)で仮説を立てる
いきなり特徴量を作り始めるのではなく、まずデータを可視化して分布、相関、パターンを把握します。ヒストグラム、散布図、相関行列を通じて「この変数が目的変数に影響しそうだ」「この2変数の組み合わせに意味がありそうだ」という仮説を立てます。
ステップ2: ドメイン知識を特徴量に変換する
業界・業務の知見を特徴量設計に反映します。例えば小売業の需要予測であれば「給料日からの日数」「天候」「近隣のイベント有無」など、データサイエンティストだけでは思いつかない特徴量を設計できます。コンサルタントの最大の付加価値はここにあります。
ステップ3: 反復的に特徴量を評価する
生成した特徴量をモデルに投入し、精度を評価します。1つずつ追加して効果を検証するアブレーション・スタディや、SHAP値による特徴量の貢献度分析が有効です。精度が向上しない特徴量は削除し、新たな仮説に基づく特徴量を試します。
ステップ4: データリーケージを検証する
特徴量に目的変数の情報が意図せず含まれていないかを確認します。例えば、融資審査モデルに「返済完了日」を特徴量として含めると、将来の情報がリークして非現実的な精度が出ます。時系列データでは特に注意が必要です。
ステップ5: 特徴量パイプラインを自動化する
本番環境で安定運用するために、特徴量生成のプロセスをパイプラインとして自動化します。手動の加工が残るとヒューマンエラーのリスクが高まり、再現性が担保できません。
活用場面
- 顧客離反予測: 直近の利用頻度変化率、問い合わせ回数の推移、契約残月数などの行動系特徴量を設計する
- 需要予測: 曜日・祝日フラグ、季節性指数、プロモーション有無など外部要因を特徴量化する
- 不正検知: 取引金額の偏差、時間帯パターンの逸脱度、過去の不正フラグなどを組み合わせる
- 信用スコアリング: 年収対負債比率、勤続年数、過去の延滞パターンなどドメイン特有の特徴量を作る
- 製造業の品質予測: センサーデータの移動平均、変化率、閾値超過回数を時系列特徴量として設計する
注意点
過学習の原因となる特徴量に注意する
特徴量を増やしすぎると、モデルが訓練データのノイズを学習してしまい、未知のデータに対する予測精度が低下します。特徴量の数はサンプル数に対して適切な比率に保ち、正則化手法(L1/L2正則化)と併用してください。
目的変数のリーケージは致命的
特徴量に未来の情報や目的変数の代理変数が含まれると、モデルの精度が非現実的に高くなります。バリデーション時に高い精度が出ても本番で使えないモデルになるため、各特徴量が「予測時点で利用可能な情報か」を必ず確認してください。
前処理と特徴量生成の順序に注意する
正規化やスケーリングは、訓練データとテストデータを分割した後に、訓練データのパラメータを使って行う必要があります。分割前に全データで正規化すると、テストデータの情報がリークします。
まとめ
特徴量エンジニアリングは、機械学習プロジェクトの成否を決定する最重要工程です。データ前処理、特徴量生成、特徴量選択の3ステップを反復的に実行し、ドメイン知識を活かした特徴量設計がモデルの精度を大きく左右します。コンサルタントがデータサイエンスプロジェクトに関与する際、業務知識を特徴量に翻訳する能力が最大の差別化要因となります。