💭

特徴量選択の重要性と代表的な手法

2024/02/24に公開

機械学習で回帰問題を扱っているのですが、今のところ特徴量を追加すれば追加するほどモデルの予測性能が向上しています。しかし、予測性能が良くなっていればそれで良いのだろうか、と不安になったので、特徴量を増やすことのリスクについて整理しました。

特徴量追加のリスク

特徴量を追加することのリスクは主に以下の4つです。

  • パフォーマンスの低下
  • 必要な訓練データ量の増加(次元の呪い)
  • 解釈性の低下
  • 計算コストの増加

パフォーマンスの低下

今回の例ではパフォーマンスは向上しているので当てはまりませんが、一般的に特徴量選択の目的の第一に挙げられることが多いので紹介します。

余分な特徴量が含まれていると、それが実際のパターンを隠してしまい、学習の妨げになることがあります。また、ノイズパターンを過度に学習してしまうことで過学習となり、モデルの汎化性能が低下することがあります。

必要な訓練データ量の増加(次元の呪い)

特徴量の数が増えると、モデルの訓練に必要なデータ量が指数関数的に増加します。これは次元の呪いといわれ、高次元空間においてデータが疎になることが原因です。

次元の呪いの解消には、特徴量選択だけでなく次元削減(PCAなど)も有効です。

解釈性の低下

特徴量が多くなると、どの特徴量がどの程度予測に貢献しているのか、理解することが難しくなります。特に複雑なモデルやアンサンブル学習を使用している場合は顕著です。

計算コストの増加

特徴量の数が多くなると、モデルの訓練にかかる時間やリソースが増加します。それだけでなく、モデルがより多くの入力データを処理する必要があるため、推論時間も増加し、クラウドサービスの場合は、それに比例してコストも増加します。つまり、特徴量の数が増えることで、モデルの訓練と運用の両方におけるコストの増加につながります。

特徴量選択とは

モデルのパフォーマンスの改善に役立つ特徴量を見つけ出したり、逆に不要な特徴量を削除したりすることを特徴量選択(Feature Selection)といいます。意識せず行っていましたが、名前がついているようです。

特徴量選択の重要性

特徴量選択の重要性は、さきほどの特徴量追加のリスクの裏返しです。

  • モデルパフォーマンスの向上
  • 学習時間やコストの短縮
  • 過学習のリスク低減
  • 解釈性の向上
  • 訓練に必要なデータ量の減少a

特徴量選択の手法には、代表的なものが3つあります。

  • フィルター法
  • ラッパー法
  • 埋め込み法

この3つの手法を紹介します。

フィルター法(Filter methods)

フィルター法は、個々の特徴量と目的変数の関係を統計的な手法で評価し、関連性が低いと判断された特徴量を削除する手法です。たとえば特徴量ともう的変数の相関係数などを用いて関連性を評価します。この手法は計算効率が高いため、大規模なデータセットでの特徴量選択に特に有用です。

フィルター法は、特徴量と目的変数の関係を個別に評価するため、特徴量間の相互作用を考慮しません。特徴量と目的変数が非線形の関係を持つ場合や、特徴量間の複雑な相互作用が予測に寄与している場合は、重要な特徴量を見落とすリスクがあります。特に、LightGBMのような高度な機械学習モデルが捉えることができる複雑な相互作用を完全には評価できないため、フィルター方の適用には注意が必要です。

ラッパー法(Wrapper methods)

特徴量のすべての組み合わせについてモデルを訓練し、最も性能が良かった特徴量の組み合わせを採用する手法です。特徴量が5つあるとすると、それぞれがモデルに含まれるか否かの二択なので、2^5(2の5乘)通りの組み合わせがありますが、それらすべてのパターンを試します。

ラッパー法は最も性能が高い特徴量の組み合わせを見つけるのに有用ですが、計算コストが高いため、特徴量の数が多い場合や計算リソースに制限がある場合は使用できません。

埋め込み法(Embedded methods)

学習アルゴリズム自体が特徴量の重要度を評価し、それを基に特徴量を選択する手法です。特徴量選択がモデルの学習プロセスに埋め込まれていることから、埋め込み法と呼ばれるようです。

LightGBMのようなモデルでは、各特徴量がモデルの予測にどれだけ貢献しているかを示す重要度を計算します。この重要度に基づいて特徴量を取捨選択します。総当たりであるラッパー法と比べると、特徴量選択にかかる計算コストが低いことがメリットです。計算リソースが限られる場合や、迅速に特徴量選択を完了させたい場合に有用です。

SHAP値を使用した特徴量選択

SHAP (SHapley Additive exPlanations) 値分析を使用して特徴量を選択するアプローチもあります。ぼくは、このアプローチと埋め込み法の両方を使用して、それぞれのモデル性能を比較しています。

これは、フィルター法のようにデータの前処理段階で独立して特徴量の重要性を評価するわけではなく、ラッパー法のように特徴量のすべての組み合わせを試して最適なセットを見つけるわけでもありません。埋め込み法のように訓練の過程で特徴量の重要度を評価するわけでもありません。したがって、先述のいずれの手法にも当てはまりません。

Discussion