特徴量選択(RFECV)についてのまとめ

Python, ML04 December 2020

機械学習のモデル作成時に行う特徴量選択の中でRFECVについてまとめます。

自己学習によるまとめの為、間違っていたらすみませんご了承ください。

特徴量選択とは

機械学習で用いられる特徴量選択とはその名の通り、与えられた(もしくは加工し追加した)特徴量の中から 必要なものを選択し、学習に用いる特徴の総数を減らすことを指します。

なぜ特徴量選択が必要かというと、

一般的に特徴量の種類(データ総数ではないので注意)が多すぎると、過学習を起こし汎化性能が下がると言われているためです。

過学習

モデルが学習用のデータに特化しすぎて、他のデータを与えた時に予測のスコアが悪くなること

汎化性能

どんなデータに対しても汎用的に使えるモデルであることを表す性能。

RFECVとは

RFECVを説明する前に先にRFEとCVについて簡単に解説します。

なぜならRFEとCVをくっつけたものがRFECVだからです。

RFE(Recursive Feature Elimination)

RFEは特徴量を選択するために、全ての特徴量を使用しその中で最も重要度の低い特徴量を削除します。

それを任意の数になるまで繰り返します。

ここで、RFEは特徴量の重要度を測定するためにアルゴリズムを与えてやる必要があります。

つまり特徴量選択でRFEを用いる場合は、モデルの学習に使用するアルゴリズムとは別に、 特徴量を選択する(重要度を測定する)ためのアルゴリズムが必要となるわけです。

CV(Cross Validation)

交差検証と呼ばれるのがCVになります。 各データをいくつかに分割し学習用と検証用に分け、それを順繰りに学習用と検証用を入れ替えて検証を行うことをいいます。

こうすることで、データの偏りなどに左右されず測定ができます。

RFECV

上記のRFEとCVを組み合わせたのがRFECVとなります。

つまり、RFEが特徴量を選択する時に交差検証を行いながら重要度を測定し、選択するということになります。

tags: Python, ML