1.特徴選択
特徴選択の目的は、どの説明変数がどの程度目的変数の値に影響するか調べること(説明変数影響解析)。
1.1.線形回帰モデルによる特徴選択
線形回帰分析の結果を基にした特徴選択は、得られた線形回帰モデルの係数を見ることである程度議論できる(係数が大きな説明変数は影響が大きいなど)が、係数を比較する前に正規化が必要。
データの正規化とは、各変数(目的変数、説明変数)の大きさやばらつき具合の違いの影響をなくすために行う前処理。主に以下の2つの方法がとられる。
- 平均0,分散1になるようにスケールする
- 最小値0,最大値1になるようにスケールする
scaleは平均値0、分散が1になるようにデータをスケールする関数。
pythonではsklearnに関数が含まれている。詳細は以下を参照
http://scikit-learn.org/stable/modules/preprocessing.html
線形回帰モデルを説明変数を使って学習させて、summaryでモデルの中身を確認することにより、各説明変数の僻陬の信頼を確認することができる。
2つの変数の間の線形関係の強さを表す指標として”相関係数”がある。相関係数は-1から1の値を持ち、絶対値が1に近いほど2つの変数間の相関関係が高いことを意味する。
Rではcorコマンド、Pythonではnumpyのcorrcoef、scipyのstats.pearsonr。
1.2.MARによる説明変数影響解析
MARSで学習したモデルはsummary関数にかけると色々な情報が表示される。
Importance行にモデルに影響のある説明変数が大きな順から列挙される。
1.3.決定木(回帰木、分類木)による特徴選択
決定木が作るツリー構造は特徴選択の際に分かりやすい。ツリー構造を可視化すると”判断に必要な説明変数がどれか”、”説明変数をどのように解釈すれば予測できるか”の知見がえられる。
1.4.オーバーフィットに注意
学習データと検定データを分けて、モデルがオーバーフィットしてないかどうか確認した方がよい。