# 特徴の汎化
## 定義
特徴の汎化とは、モデルに使用する個々の特徴が未知のデータに対してどれだけ有効であり続けるかという性質である。機械学習モデルのゴールは未知のデータに対する正確な予測であるため、使用する特徴も未知のデータへ汎化することが望まれる。ただし、すべての特徴が等しく汎化するわけではない。たとえばコメントがスパムかどうかを予測するタスクでは、各コメントの識別子はまったく汎化できないため特徴として使うべきではない一方、コメントを投稿したユーザーの識別子(ユーザー名など)は予測に有用でありうる。特徴重要度の測定と比べて、特徴の汎化の測定はより科学的とは言いがたく、統計的知識に加えて直感と対象領域の専門知識の両方を要する。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 5 特徴エンジニアリング]] §5.4.2)
## 2つの評価軸: カバレッジと分布
- **カバレッジ(coverage)**: データ中にその特徴の値が存在するサンプルの割合。欠損している値が少ないほどカバレッジは高い。経験則としては、データのごく一部にしか見られない特徴は汎化に期待できない。ただし、この経験則はやや乱暴であり、欠損値がランダムでない場合は特徴の有無そのものが強力な兆候になりうる(例: ある特徴がデータの1%にしか見られなくても、その特徴を持つサンプルの99%がPOSITIVEラベルを持つなら有用)。特徴のカバレッジはスライスによって、また同じスライスでも時間経過とともに大きく乖離することがあり、訓練セットとテストセットの間でカバレッジに著しい開きがある場合は、両者が同一の分布から得られていないこと、あるいはデータリークの兆候を示唆する。
- **分布(distribution)**: 既知のデータ(訓練セットなど)で見られる値のセットが、未知のデータ(テストセットなど)で見られる値とまったく重複しない場合、その特徴はモデルのパフォーマンスを低下させうる。
(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 5 特徴エンジニアリング]] §5.4.2)
## 具体例: タクシー配車のETA予測
毎週再訓練し、直近6日間のデータで当日のETA(到着予定時刻)を予測するモデルを例に取る。
- **DAY_OF_THE_WEEK(曜日)**: カバレッジは100%だが、分割後の訓練セットでは月曜〜土曜、テストセットでは日曜という値しか出現しない場合、曜日のエンコードを工夫しなければテストセットへ汎化できない。
- **HOUR_OF_THE_DAY(時間帯)**: 交通量に影響を与える有用な特徴であり、かつ訓練セットとテストセットで値の範囲が100%完全に重なるため優れた特徴になる。
- **IS_RUSH_HOUR**: 午前7時〜9時・午後4時〜6時に1を立てる二値特徴。HOUR_OF_THE_DAYより汎化性は高いが特異性(specificity)は低く、HOUR_OF_THE_DAYを併用しないと時間に関する重要な情報が失われる。
この例は、特徴の汎化性と特異性がトレードオフの関係にあることを示す。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 5 特徴エンジニアリング]] §5.4.2)
## 横断的知見
- **「特徴レベルの汎化」と「モデルレベルの汎化」は同じ語を使いながら異なる対象を指す**: [[汎化能力]]が扱う汎化(訓練データから未知データへのモデル全体の予測性能の転移)は、パラメータ数・仮説数・正則化といったモデル側の性質を主題とする。本ページが扱う特徴の汎化は、個々の特徴という入力側の単位に関する性質(カバレッジ・分布の一致)であり、モデルが十分に汎化する能力を持っていても、個々の特徴が訓練セットとテストセットで分布が乖離していれば([[データリーク]]の症状と紙一重の形で)モデルの実効的な汎化性能を損なう。両概念は「未知データへの性能維持」という同じ目標を、モデル側と特徴側という異なるレイヤーから支えている。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 5 特徴エンジニアリング]] §5.4.2, [[汎化能力]]の定義節)
## 未解決の問い
- 特徴のカバレッジが低くても有用な例(欠損自体が強い予測シグナルになる場合)と、単純にノイズになる場合を、経験則以外の定量的な基準で判別する方法はあるか。
- 訓練セットとテストセットの特徴分布の乖離を体系的に検出する手法(本ページの例は目視によるDAY_OF_THE_WEEKの発見)は、[[データ分布のシフト]]の監視の仕組みとどこまで自動化・統合できるか。
- 汎化性と特異性のトレードオフ(HOUR_OF_THE_DAY対IS_RUSH_HOUR)を定量的に測定し、両者を併用すべきか一方を選ぶべきかを判断する基準は本章では示されていない。
## 関連
- ソース: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 5 特徴エンジニアリング]](§5.4.2)
- 概念: [[汎化能力]](モデルレベルの汎化との対比) / [[データリーク]](カバレッジの乖離が調査の手がかりになる) / [[予測モデルの解釈手法]](特徴重要度というもう一方の評価軸)
- 書籍: [[wiki/entities/機械学習システムデザイン|機械学習システムデザイン]]
## 出典
- Chip Huyen 著, 江川崇・平山順一 訳, 『機械学習システムデザイン』, オライリー・ジャパン, 2023, 5章, §5.4.2.