特徴選択・特徴抽出によって過学習を抑える

データ前処理

機械学習のモデル作成において、大半の時間は、データの準備と前処理に費やされる。例えば、データに欠損値が含まれると、これを補完したり、あるいは除去したりする必要がある。また、データに含まれる特徴量が多かったり、あるいは特徴量同士の相関が高かったりする場合は、特徴量を減らすたりする必要がある。このように、機械学習のモデル作成において、データの整形、欠損値の処理、特徴量の選択などに多くの時間を費やされる。

特徴選択・特徴抽出

学習データのサンプル数を十分に用意できないまま、複雑なモデルで機械学習を行うと、過学習を起こす。過学習を起こした予測モデルは、学習データに対して予測精度が非常に高くなるが、検証データなどの未知のデータに対しては予測精度が非常に低い。過学習を防ぐには、サンプル数を増やすか、あるいはモデルの複雑さを減らすかで対処できる。現実問題として、サンプルの再収集にコストがかかる場合がほとんどである。そのため、モデルの複雑さを減らすことで過学習を抑制することが一つの解決策として用いられる。モデルの複雑さを減らす方法には、いくつかのアプローチがある。

特徴選択

学習データに含まれている特徴量のうち、予測に特に重要だと思われる特徴量だけを選択して、モデルの学習に利用する方法である。例えば、正解ラベルと各特徴量との間で回帰分析や t 検定などを行い、R2 あるいは p-value に閾値を設けて、上位から少数の特徴量を選択する。回帰分析や t 検定の他に、特徴量の分散の大きさや相関係数などを利用する方法もある。

また、その他に、変数増加法や変数減少法などのステップワイズ法やランダムフォレストなどの方法も特徴選択に利用されている。

特徴抽出

もう一つの方法として、学習データを別の空間に射影してから、その射影先の空間で特徴量を少数選択して学習に使う、という方法もある。例えば、n 次元からの特徴量を別の n 次元の空間に射影して、その射影後の空間において k (< n) 個の特徴量を選ぶ。これには主成分分析と線形判別分析などの方法がある。

正則化

特徴選択・特徴抽出は、元の学習データの特徴量の中から、予想に重要だと思われる特徴量を少数選んで、学習に回すという方法である。これに対して、正則化は、元の学習データの特徴量全体を学習に回すが、学習アルゴリズムにペナルティを設けて、そのペナルティによってモデルの複雑さを抑えようとする方法である。