特徴選択

特徴選択(とくちょうせんたく、: feature selection)とは、機械学習統計学の用語であり、頑健な学習モデルの構築のため、特徴集合のうち意味のある部分集合だけを選択する手法のことを指す。特徴量選択変数選択特徴削減属性選択素性選択変数部分集合選択などとも呼ばれる。生物学の文脈では、DNAマイクロアレイの実験に基づいて影響力のある遺伝子を検出する手法を指す場合もある。不要で冗長な特徴量をデータから除去することによって、特徴選択は学習モデルを次の点で改善する:

  • 次元の呪いの効果を緩和する。
  • 汎化性能を向上させる。
  • 学習を高速化する。
  • モデルの可読性を改善する。

特徴選択を行うと、データのうちどの特徴量が重要でありどのようにそれらが関係しているかなどといった点について、人間が理解しやすくなるという効果もある。

導入

[編集]

単純な特徴選択アルゴリズムは場当たり的なものだが、より系統だったアプローチも存在する。理論的観点からは、教師あり学習問題において最適な特徴選択を行うには、選ばれた大きさのすべての部分集合を特徴集合から取り出し、総当たりで試す必要があるということが証明できる。特徴の数が多くなれば、このやり方は実用的でなくなる。実用的な教師あり学習アルゴリズムの特徴選択では、最適な集合ではなく満足できる集合を求めることになる。

特徴選択アルゴリズムは典型的には、特徴ランキングと部分集合選択という二つのカテゴリに分類される。特徴ランキングでは、ある指標によって特徴をランクづけし、一定のスコアに達しなかった特徴を除去する。部分集合選択では、最適な部分集合を目指して特徴の組み合わせを探索する。

統計学では、ステップワイズ回帰英語版がもっともよく用いられる特徴選択の形態である。この手法は、各ステップにおいてもっとも良い特徴を追加する(もしくはもっとも悪い特徴を除去する)貪欲アルゴリズムである。機械学習では交差検証によって特徴の良さを評価することが多く、統計学ではなんらかの規準を最適化することが多い。このやり方には入れ子型の特徴量に関する問題が内在しているため、分枝限定法や区分線形ネットワークなど、より頑健な手法が研究されている。

部分集合選択

[編集]

部分集合選択では、特徴集合の部分集合がまとまりとして適切かどうかを評価する。部分集合選択のアルゴリズムは、ラッパー、フィルター、埋め込みの三種に分類できる。ラッパーは探索アルゴリズムを用いて可能な特徴の空間を探索し、それぞれの部分集合でモデルを走らせて評価を行う。ラッパーは計算量的にコストが高く、モデルの過剰適合を起こす危険性がある。フィルターは探索を行う点でラッパーに似ているが、モデルを走らせるかわりにより単純なフィルターを用いて評価を行う。埋め込み型の方法はモデルごとに特化したものであり、モデルに埋め込まれている。

よく用いられる探索のアプローチは貪欲山登り法である。山登り法では、候補となる特徴部分集合を評価し、部分集合の一部を書き換えてそれが古い部分集合を改善している限り手続きを繰り返す。部分集合の評価では、特徴部分集合をスコアづけする指標が必要となる。総当たり探索は通常実用的でないため、実装者が停止点を定め、その停止点までに見つかったうち最高のスコアを持つ特徴部分集合を満足できる特徴部分集合として採用する。停止の規準は、アルゴリズムによって異なるが、部分集合のスコアがしきい値を超える、プログラムの実行時間が規定値を超える、などである。

探索組合せ最適化)のアプローチには、

などがある。

フィルターの規準として、分類問題では相関相互情報量の二つがよく用いられる。これらのスコアは候補となる特徴(もしくは特徴部分集合)と求める出力カテゴリの間で計算される。

フィルターの規準としてはほかに、次のものがある:

  • クラスの分離性
  • 一貫性に基づく特徴選択
  • 相関に基づく特徴選択

最適性規準

[編集]

特徴選択を制御する最適性規準には様々なものがある。もっとも古いものとしてはマローズのCp統計量や赤池情報量規準がある。これらの手法では t統計量英語版 を超えた変数を採用する。

その他の規準としては、 を用いるベイズ情報量規準 (BIC) 、 を近似的に用いる最小記述長(この近似の計算は正しくないとする議論もある[要出典])、 を用いる Bonnferroni 法や RIC 、偽発見率英語版に基づいて 付近のしきい値を用いる様々な規準がある。

正則化

[編集]

L1 正則化、L0 正則化を用いても特徴選択できる。詳細は正則化の項目を参照。

特徴選択が埋め込まれている手法

[編集]

特徴選択のためのソフトウェア

[編集]

MATLAB, Scilab, NumPy, R言語などの多くの標準的なデータ解析ソフトウェア(参考:en:Category:Data analysis software)では、特徴選択の機能が提供されている。特徴選択に特化したソフトウェアとしては次のものがある。

関連項目

[編集]

参考文献

[編集]

外部リンク

[編集]