特徴量エンジニアリング とくちょうりょうえんじにありんぐ
特徴量前処理データ変換モデル精度欠損値処理スケーリング
特徴量エンジニアリングについて教えて
簡単に言うとこんな感じ!
AIに渡す「入力データ」を賢く料理して食べやすい形にする作業だよ!たとえば「日時」という1列のデータから「曜日」「時間帯」「祝日かどうか」を取り出すのが特徴量エンジニアリング。生のデータのままより、AIが理解しやすい形に加工するほど精度が上がるんだ。データサイエンスの仕事の8割はこの作業だとも言われてるよ!
特徴量エンジニアリングとは
特徴量エンジニアリング(Feature Engineering)とは、機械学習モデルへの入力として使う特徴量(Feature)を作成・選択・変換する一連の作業です。生データをそのままモデルに渡すより、適切に加工した特徴量を使ったほうが精度が上がることがほとんどです。
「ゴミを入れればゴミが出る(Garbage In, Garbage Out)」という格言があるように、どんなに高度なモデルを使っても、入力データの質が低ければ良い結果は得られません。逆に、シンプルなモデルでも質の高い特徴量があれば驚くほど精度が出ることもあります。
特徴量エンジニアリングは職人的なスキルが求められる領域で、ドメイン知識(業務理解)が大きく活きる場面です。発注側として「使用するデータと特徴量の設計について説明してください」とベンダーに問うことで、AI開発の品質を評価する手がかりになります。
代表的な特徴量エンジニアリング手法
| 手法 | 内容 | 例 |
|---|---|---|
| 数値スケーリング | 値の範囲を統一する(正規化・標準化) | 売上額(0〜1億)を0〜1に変換 |
| 欠損値処理 | NULLや空白を埋める・除外する | 平均値・中央値で補完、または行を削除 |
| カテゴリのエンコーディング | 文字列を数値に変換 | 「東京/大阪/名古屋」→ 0/1/2 またはOne-Hot |
| 特徴量の生成 | 既存の列から新しい特徴を作る | 日時 → 曜日・時間帯・祝日フラグ |
| 特徴量の交互作用 | 複数の特徴を掛け合わせる | 身長 × 体重 → BMI |
| 外れ値処理 | 異常に大きな値をクリップ・除外する | 年収9,999万円の誤入力を上限値に置換 |
| 特徴量選択 | 重要でない特徴を除く | L1正則化・相関係数・特徴重要度でフィルタ |
| ビニング(離散化) | 連続値を区間に分ける | 年齢 → 10代/20代/30代… |
歴史と背景
- 1950〜70年代:統計学における変数変換(対数変換・Box-Cox変換)が特徴量工学の原型
- 1980〜90年代:機械学習の発展とともに「特徴抽出(Feature Extraction)」という概念が確立
- 2000年代:KaggleなどのMLコンペティションの普及で、特徴量エンジニアリングが競争の勝敗を決める要因として注目される
- 2010年代前半:「ディープラーニングが特徴量を自動学習する」という期待から一時的に注目が下がる
- 2010年代後半〜現在:テーブルデータ(構造化データ)ではXGBoostなど勾配ブースティング系モデルが依然として主流で、特徴量エンジニアリングの重要性は変わらない。AutoML・AutoFEと呼ばれる自動化ツールも登場
特徴量エンジニアリングの流れ
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| ISO/IEC 22989:2022 | AI概念・用語(データ処理・特徴抽出の定義を含む) |
| ISO/IEC 23053 | 機械学習を使ったAIシステムのフレームワーク |
関連用語
- 次元削減 — 特徴量の数を減らして扱いやすくする手法
- PCA(主成分分析) — 特徴量を圧縮・変換する代表的な次元削減手法
- 過学習・過適合 — 特徴量が多すぎると起きやすい問題
- 正則化(L1・L2) — L1正則化は特徴量選択と組み合わせて使われることが多い
- 交差検証 — 特徴量の有効性を評価する際に使うデータ分割手法
- 決定木・ランダムフォレスト — 特徴重要度を出力し、特徴量選択に役立つモデル
- クラスタリング — 特徴量エンジニアリングの結果を教師なしで評価するアプローチ