2026-04-30·実装·⏱ 約 5 分
特徴量エンジニアリング 入門 ─ Kaggle 上位の必須スキル
ML モデルの精度の 80% を決める『特徴量エンジニアリング』。カテゴリ・数値・時系列・テキストの代表的な変換手法を実例で整理。
「より良いモデルより、より良い特徴量」 ─ Kaggle で何百人もが言うこの格言は本当です。本記事では実務で使う変換テクニックを データ型ごと に整理します。
1. 数値特徴量の変換
- 対数変換: 右に裾が長い分布(年収・売上・株価)を対称に
- ビン化(離散化): 連続値を `若年/中年/高齢` のような区分に。決定木以外で有効
- スケーリング: 標準化(平均 0、標準偏差 1)・正規化(0〜1)。線形モデル・NN・SVM で必須
- 多項式特徴量: で非線形を線形モデルに導入
- Box-Cox / Yeo-Johnson 変換: 非正規分布を正規型に
2. カテゴリ特徴量のエンコード
- One-Hot Encoding: シンプルだがカテゴリが多いと次元爆発
- Label / Ordinal Encoding: 順序のあるカテゴリに(`小・中・大` → `0,1,2`)
- Target Encoding: カテゴリ → 平均ターゲット値。強力だがリーク注意(K-fold 内で計算)
- Frequency Encoding: カテゴリの出現頻度で置換。シンプルかつ効くことが多い
- Hashing Trick: カテゴリ数が膨大なときの省メモリ手法
- Embedding: NN で学習する低次元密ベクトル(リコメンドで定番)
3. 時系列特徴量
- ラグ特徴量: など過去の値
- 差分: 、季節差分
- ローリング統計: 7 日平均・30 日標準偏差・最大値
- カレンダー特徴量: 曜日・月・祝日フラグ・四半期
- フーリエ特徴量: 季節性を sin/cos の組合せで
- EWMA(指数加重移動平均): 直近を重く扱う移動平均
4. テキスト特徴量
- Bag-of-Words / TF-IDF: 古典だが今も実務で十分実用
- 埋め込みベクトル(BERT / OpenAI / E5): 意味的類似度を捉える
- 文字数・単語数・大文字比率: シンプルだが効くことが多い(特にスパム検出)
- 正規表現マッチ: 電話番号・メール・URL の有無
5. 特徴量の評価と選択
- Permutation Importance: 特徴量をシャッフルして精度低下を測定。最も信頼できる
- SHAP: 各特徴量の寄与を厳密に算出。可視化も豊富
- Boruta: ランダム特徴量より重要なものだけを選択
- 相関フィルタ: 高相関のペアから片方を除く(多重共線性)
💡 ドメイン知識が最強
経験的に ドメイン専門家との議論で生まれた特徴量 が最も効く。例: 不正検出なら『過去 24 時間内の取引回数』『送金先の新しさ』など。アルゴリズムでは生み出せないこの種の特徴量設計が、Kaggle 上位と中位を分ける。
Pandas で代表的な特徴量を一気に作る
初回のみ Pyodide(~10MB)を CDN から読み込みます
関連記事
- [scikit-learn 入門](/blog/sklearn-introduction)
- [Pandas 実務 Tips](/blog/pandas-tips-for-ml)
- [Kaggle 始め方](/blog/kaggle-getting-started)
- [プログラミング入門](/programming) ─ Python・SQL の基礎
Related Articles
関連記事
- 2026-04-30実装Slack Bot を LLM で作る ─ FastAPI + OpenAI で社内ツール化Slack の Slash Command と Events API を使い、社内チャンネル内で動く LLM Bot を構築。FastAPI バックエンド + OpenAI で 1 日で完成。
- 2026-04-30実装FastAPI 入門 ─ ML モデルを 5 分で API にするPython の高速 Web フレームワーク FastAPI を使って、ML モデルを REST API として公開する最短ルート。型ヒント・自動ドキュメント・非同期対応の 3 拍子。
- 2026-04-30実装Docker 入門 ─ ML 環境の再現性を担保する「自分の PC では動く問題」を解決する Docker。ML プロジェクトの Dockerfile・GPU 対応・docker-compose・Multi-Stage Build までを実用視点で。