1 特徴選択の概要
特徴選択は、与えられた多数の入力変数のうち、目的変数の予測、あるいはその説明に有用な特徴の部分集合を選び出す技法である。データ次元の縮小、不要情報の排除、モデルの汎化改善、計算負荷の軽減、そして意思決定の根拠を整理するという複数の利点を同時に狙う点に特徴がある。
1.1 定義と目的
特徴選択の対象は「特徴量(特徴)」と呼ばれる入力の列や属性であり、残す集合を決める操作が中心となる。選ばれる特徴は、データに含まれる情報のうち目的に対して寄与が大きいものに偏ることが期待され、最終的には学習器が必要とする有効信号の比率を高めることにつながる。
1.1.1 次元削減と計算効率
入力次元が高いほど、学習のための計算量や必要メモリが増える。特徴数を抑えることで、学習時間の短縮、推論時の高速化、パラメータ数の抑制が期待できる。特に、特徴数がそのまま探索や最適化の負担になる手法では、削減効果が顕著になりやすい。
1.1.2 汎化性能の改善
特徴が多すぎると、訓練データへの過適合が起こりやすくなる。ノイズや偶然の相関を拾う確率が増えるため、モデルが新しいデータに対して誤りを減らしにくくなる。適切な特徴選択は、学習に必要な情報を残しつつ、不要または不安定な変数を抑えることで、汎化誤差の低減を狙う。
1.1.3 解釈性・可説明性の向上
特徴選択により、モデルが利用する入力が絞られると、意思決定の説明が整理しやすくなる。たとえば、残った変数を提示するだけでも、支配的な要因の概観を得られる。厳密な因果推論とは別だが、予測根拠の「見通し」を良くする効果が期待される。
1.2 対象となるデータと条件
特徴選択の手順はデータの性質に強く依存する。同じ「特徴を選ぶ」作業でも、変数の型、欠損の扱い、時系列としての依存構造、サンプル数と特徴数の比などで適切な方法が変わる。
1.2.1 特徴量の種類(数値・カテゴリ・テキスト等)
特徴量には連続値、順序・カテゴリ、テキスト由来の高次元表現など多様な型がある。数値は相関や距離、分布差の評価が比較的容易である一方、カテゴリは符号化方式によって性質が変わる。テキストは語彙の疎な表現になりやすく、単純な相関指標では捉えにくいことが多い。そのため、特徴選択は表現形式と一体で設計されることが多い。
1.2.2 学習設定(回帰・分類・時系列など)
目的変数の種類に応じて、評価指標や統計的検定の前提が変わる。回帰では誤差損失や分散説明度が主役になりやすく、分類では識別性能を反映する指標が用いられる。時系列では、時点間の順序とリーク(未来情報の混入)を避ける分割設計が不可欠であり、単純なランダム分割では特徴選択が誤作動する場合がある。
1.2.3 データ規模と特徴数の関係
サンプル数が少なく特徴数が多い状況では、探索の自由度が大きくなるため、選択が偶然のパターンに引き寄せられやすい。逆にサンプル数が十分にある場合は、より多くの特徴を残しても学習が安定しやすい。特徴選択は「どこまで削るか」というトレードオフ問題でもあり、データ規模に応じた設計が求められる。
1.3 特徴選択が影響するモデル要素
特徴選択は、前処理、正則化、そして学習器の選び方にまたがって影響を与える。単独の工程として扱うと最適解から外れることがあるため、周辺の設計と整合させる必要がある。
1.3.1 前処理との関係
欠損補完、標準化、カテゴリ符号化、テキストのベクトル化などの前処理は、特徴の性質を変える。特徴選択を前処理の前に行うか後に行うか、あるいは同時にパイプラインで扱うかが重要になる。特に標準化や統計量の計算は分割後に行わないとリークが起こるため、特徴選択を含む一連の処理を正しく結合する必要がある。
1.3.2 正則化との関係
正則化はモデルの複雑さを抑える役割を持ち、特徴選択も似た目的を共有する面がある。結果として、強い正則化が効く学習器では特徴選択の効果が小さく見えることもある。反対に、弱い正則化や単純な学習器では、特徴選択が必要不可欠な補助になることがある。
1.3.3 モデル選択との関係
特徴選択は、特定の学習器に最適化されることが多い。たとえば木系モデルの性質と相性の良い選択もあれば、線形モデルの仮定に沿った選択もある。同じ特徴集合でも、学習器によって寄与の出方は変わるため、「特徴選択で選んだものを、その後のモデルが本当に活かせているか」を検証する必要がある。
2 特徴選択の基本アプローチ
特徴選択の代表的な分類として、フィルタ方式、ラッパ方式、組込み方式がある。前者は学習器に依存しにくく評価しやすい一方、後者ほど目的に対する最適化に寄りやすいという傾向がある。
2.1 フィルタ方式
フィルタ方式は、学習器を構築せず、統計指標や情報量に基づいて特徴を評価し、上位を選ぶ。計算が比較的軽く、大規模データや事前スクリーニングに向く場合がある。反面、学習器との相互作用が反映されにくく、組み合わせとしての効果を取りこぼすことがある。
2.1.1 単変量評価
単変量評価では、各特徴と目的変数の関係を個別に測り、順位付けを行う。複雑な依存構造を見落としやすいが、実装は直感的である。
2.1.1.1 相互情報量
相互情報量は、目的変数と特徴の間に共有される情報の大きさを測る指標である。非線形な関係も捉えられる場合があり、分類でも回帰でも応用されることがある。推定には離散化や確率密度の扱いが関わり、サンプル不足では不安定になり得る。
2.1.1.2 検定統計量
検定統計量は、特徴の有無が目的に対して有意な差を生むかを評価する枠組みである。たとえばカテゴリ特徴では群間差、連続特徴では相関や回帰の係数検定などが使われる。複数比較の補正や仮定条件の整合が重要になる。
2.1.1.3 相関係数と距離指標
相関係数は線形関係の強さを表し、距離指標は分布や近さを反映する。連続特徴に対しては扱いやすいが、非線形性や分布の形状が複雑なときには適合しないことがある。距離指標側も、尺度や外れ値の影響を受けるため前処理の設計が効く。
2.1.2 多変量評価
多変量評価では、特徴同士の関連も考慮して集合としての良さを見に行く。単変量の限界を補う一方で、評価の計算負担が増えやすい。
2.1.2.1 情報量に基づく手法
集合の情報利得を近似しながら選ぶ発想があり、冗長性や重複する情報の量を抑えつつ関連性を高めることを狙う。代表的には、追加候補が「既存集合が持つ情報をどれだけ増やすか」を指標化する形になる。
2.1.2.2 冗長性・関連性の考慮
冗長性は特徴同士が似通っている度合いであり、関連性は目的との結びつきの強さである。両者を同時に見積もることで、「一見有意だが実際は同じ情報を言っているだけ」の特徴を削りやすくなる。現実のデータでは相互依存が多いため、設計次第で精度と安定性に差が出る。
2.2 ラッパ方式
ラッパ方式は、特徴集合を仮に作り、その集合を使って学習器を訓練し、検証指標で良し悪しを評価する。つまり特徴の組み合わせが実際の性能にどう効くかを直接見に行く。計算コストは上がりやすいが、目的に整合しやすい。
2.2.1 検証に基づく評価
ラッパ方式では、特徴選択のたびにモデルの性能推定が必要になる。したがって、分割設計と計算資源の管理が成否を左右する。
2.2.1.1 検証交差と性能推定
検証交差は、限られたデータから汎化性能を推定する。特徴選択の工程も交差検証と整合させないと、選択に未来情報が混じり性能が過大評価される。実務では、特徴選択を学習側のみに組み込むパイプライン化が一般的な対策になる。
2.2.2 探索戦略
特徴集合は組合せ爆発し得るため、探索戦略が不可欠である。全探索は現実的でない場合が多く、貪欲法や段階的手順が用いられる。
2.2.2.1 前進選択
前進選択は空集合から始め、性能が最も改善する特徴を順に追加する。追加のたびに性能を確認するため、局所的な最良を見つけやすい一方、後から必要になる特徴を見逃す可能性がある。
2.2.2.2 後退消去
後退消去は全特徴から始め、性能を悪化させにくい特徴を順に削る。初期集合の質に依存する面があるが、冗長特徴をまとめて取り除く発想として機能することがある。
2.2.2.3 逐次探索と打ち切り
逐次探索では、改善が一定しなくなった時点で手順を止める設計がよく行われる。打ち切り基準は性能差、統計的有意性、または計算予算に基づく。適切な停止条件がないと、無駄な探索で過学習や計算過多につながる。
2.3 組込み方式(組込み選択)
組込み方式は、学習器の学習過程そのものが特徴選択に相当する形になる。最終的に得られる係数や分割の性質から、重要な特徴が自動的に現れる。フィルタより学習との整合が高く、ラッパより計算が軽いことが多い。
2.3.1 正則化による選択
2.3.1.1 L1正則化とスパース性
L1正則化は係数の絶対値に罰則を与え、学習によって一部の係数をゼロにする性質(スパース性)を促しやすい。結果として、特徴が自動的に抑制されやすく、選択と学習が同時に進む。ゼロになることは「寄与がない」ことを意味する場合もあれば、相関構造のもとで他特徴が代替した結果である場合もある。
2.3.1.2 グループ正則化
グループ正則化は、特徴をグループとしてまとめて扱い、グループ単位で抑制や選択を行う考え方である。符号化により生じる複数次元を1まとまりとして扱う場合などに有用である。グループ構造の設定が性能に影響するため、設計の妥当性が問われる。
2.3.2 木系モデルの重要度
木系モデルは分割に基づく学習を行い、重要度指標によって利用されやすい特徴を把握できる。注意点として、重要度の定義は実装や前処理の影響を受けることがある。
2.3.2.1 分岐に基づく重要度
分岐に基づく重要度は、ある特徴が分割に使われた頻度や改善量を集計する形で定義されることが多い。外れ値や高基数カテゴリなどの性質で見かけ上の重要度が上がる場合があり、単独の根拠として扱うには慎重さが必要である。
2.3.3 埋め込み・表現学習との接点
埋め込みや表現学習では、特徴選択は「入力特徴の選別」よりも「表現の圧縮」や「埋め込み空間への写像」に近い形で現れることがある。自動で次元が削減されるため、従来型の選択とは別の観点で説明可能性や評価設計が必要になる。
3 特徴選択の評価と実務
特徴選択は手法そのものより、評価設計と運用手順によって成果が大きく変わる。本章では指標、検証設計、安定性、そしてハイパーパラメータ管理に焦点を当てる。
3.1 評価指標
評価指標は、特徴集合が目的に与える効果を測る基準である。予測問題では性能指標が直接使われるが、目的が別の場合には同じ指標をそのまま流用すると誤解が生じる。
3.1.1 予測性能(精度・損失・AUC等)
分類では精度、再現率、F1、AUCなど、回帰では平均二乗誤差や平均絶対誤差、損失関数が用いられる。重要なのは、選んだ指標が意思決定の目的に対応しているかである。たとえば損失と運用上のコストが一致しない場合、特徴選択の結果が最適でないことがある。
3.1.2 生成性能ではない場合の注意
特徴選択を推薦や生成文脈に適用する場合でも、「生成らしさ」だけで良さを測ると、予測目的とズレることがある。評価の軸が目的を表しているか、そして特徴選択の工程がその評価に間接的に最適化されていないかを確認する必要がある。
3.2 検証設計
検証設計は、特徴選択の過程で生じる情報漏洩や見積りの偏りを抑えるための枠組みである。分割の仕方が不適切だと、選択が「たまたま当たった」ものになりやすい。
3.2.1 データ分割とリーク防止
リーク防止では、学習に使ってよい情報と禁止される情報の区別が重要になる。特徴選択を行う前処理で統計量を計算する場合、分割前に計算するとテスト側の分布が混入する。したがって、パイプラインとして学習側のデータに限定して計算する設計が求められる。
3.2.2 交差検証の設計
交差検証は汎化推定の精度を上げるが、データ依存がある場合には工夫が必要になる。時系列では未来予測に整合する分割を、グループ化がある場合は同一グループを同じ折にまとめるといった配慮が有効である。
3.3 安定性と再現性
安定性は、データや分割が少し変わったときに選択結果がどれだけ揺れるかを表す。再現性が低い場合、特徴が本質的でなく、評価が偶然に依存している可能性がある。
3.3.1 ブートストラップによる評価
ブートストラップは標本を置換で再抽出し、選択頻度や性能分布を観察する方法である。これにより、選ばれやすい特徴と選ばれにくい特徴を区別しやすくなる。計算負荷は増えるが、実務では意思決定の確からしさを高めるのに役立つ。
3.3.2 特徴集合の一致度
一致度は、複数回の選択で得られる特徴集合がどれくらい重なるかを示す。指標としては集合の重複比や順位相関などが利用されることがある。揺れが大きい場合は、特徴数や正則化強度、探索の範囲を見直す手掛かりになる。
3.4 ハイパーパラメータ管理
特徴選択は探索や制約のためにハイパーパラメータを多く含む。管理が不十分だと、成果が再現不能になったり、目的指標を不適切に最適化してしまう。
3.4.1 選択数(上位k)決定
上位k個のような選択数の決定は、バイアスと分散のトレードオフに直結する。少なすぎると情報が欠落し、多すぎると過学習の危険が増える。k自体を検証で調整する設計が一般的である。
3.4.2 探索空間と計算資源
探索空間は前進・後退の深さ、特徴追加の候補数、評価回数などで規定される。計算資源が限られると探索が浅くなり、最良解に届かない可能性がある。予算に応じて段階的に範囲を縮める戦略や、粗いスクリーニングを挟む手順が採られる。
4 よくある課題と応用
特徴選択の実務では、データの性質や問題設定に由来する課題が頻出する。相関構造、クラス不均衡、過学習、そして領域固有の特徴設計が中心になる。
4.1 相関・冗長性・多重共線性
相関の高い特徴が複数あると、どれか一つが選ばれても別のものが落ちる、という揺れが生じやすい。これは多重共線性の影響として現れ、説明と性能の両方で解釈を難しくする。
4.1.1 冗長特徴の扱い
冗長特徴は、目的に関する独自情報が少ないのに計算や過学習を増やす可能性がある。多変量評価やクラスタリングに基づくまとめ方、あるいは正則化による抑制などが対策になる。重要なのは「削る」だけでなく、「どのような依存構造を許容するか」を決めることにある。
4.1.2 相互依存の見落とし
単変量指標では、単独では弱いが組み合わせると強い特徴を見落とすことがある。ラッパ方式や多変量フィルタはこの問題に対処しやすいが、計算コストや安定性とのバランスが必要になる。
4.2 クラス不均衡と特徴選択
クラス不均衡では、少数クラスに関する識別性能が見かけ上軽視されることがある。特徴選択が多いと、偶然に多い側のパターンに寄りやすくなり、実運用の失敗につながる。
4.2.1 不均衡指標の用い方
不均衡では、精度よりも再現率やAUC、あるいは適切に重み付けされた損失が選ばれることが多い。特徴選択側も同じ基準で評価する必要があり、指標の不一致は選択の方向性を誤らせる原因になる。
4.3 ハイ次元データでの過学習
ハイ次元領域では、訓練データに対する当たりやすさが増える一方で、一般化が不安定になりやすい。特徴選択はそれを抑える目的にも使われるが、選択自体が過学習を起こすこともある。
4.3.1 サンプル数不足
サンプルが少ないと、特徴ごとの評価が統計的に不安定になる。結果として、選択結果が特定の分割に過度に依存しやすい。ブートストラップや交差検証で揺れを観察し、選択頻度が低い特徴は扱いを控えるなどの運用が有効になる。
4.3.2 特徴量スケーリングの影響
スケーリングは距離や分散に基づく評価、正則化の効き具合に影響する。標準化やロバストなスケーリングは、極端値の影響を緩和し、選択の一貫性を高めることがある。前処理のパイプライン化はリーク防止と同時に重要になる。
4.4 適用領域の例
特徴選択は、画像や音声、信号、ビジネス指標、テキストなど多領域で利用される。ただし表現の違いにより、向いている方法や前処理が変わる。
4.4.1 画像・音声・信号
画像や音声はピクセルやスペクトログラムにより高次元になる。特徴選択では、周波数帯や周波数成分のような意味のある単位に集約する、あるいは重要領域を優先する設計が採られることがある。信号の時間依存を無視するとリークや過評価が起きるため、分割戦略が重要になる。
4.4.2 テーブルデータとビジネス指標
テーブルデータでは、カテゴリの符号化、欠損処理、外れ値処理が前処理の中心となる。特徴選択は説明可能性のためにも利用され、ドメイン知識と整合する変数を残すことで、運用上の理解を助ける。特徴の選択は経済的施策の優先順位にも結びつくため、安定性の評価が特に重視される。
4.4.3 テキスト特徴(単語・n-gram等)
テキストは語彙が大きく、n-gramの組み合わせが爆発しやすい。単語出現頻度や文書内分布に基づくフィルタ、相互情報量などは有効になり得る。一方で文脈依存が強い場合、表現学習由来の埋め込みの次元圧縮と組み合わせることで、別の形で冗長性が減ることがある。
4.5 現場運用のコツ(軽い実務知)
特徴選択は「正しそうな手法」よりも、「正しい検証手順」を守れるかが成果を左右しやすい。ここでは実務でのつまずきやすい点を、比喩を交えて整理する。
4.5.1 「いい感じ」に惑わされない手順
検証で性能が上がったように見えても、分割の偶然やリークが混じっていると失敗する。まずはパイプラインとして前処理と選択を分割に従属させる。次に、選択結果の揺れを確認し、性能の平均だけでなく分散や再現性も見る。最後に、選択数や探索深さの変更で結論が崩れないかを確かめる。
4.5.2 テーブルの列選びが恋愛の駆け引きみたいになる罠(比喩)
列を増やすと「当たる気がする」ことがあるが、実際には相手(目的変数)との相性より、たまたま相手の気分に合っただけの可能性がある。恋愛で、直近の反応だけを見て突っ走ると後で整合しないのと同様に、検証の折を変えると選ばれる列が入れ替わることがある。派手に追加するより、理由のある選び方と停止条件を決め、落ち着いて観察する姿勢が必要になる。