特徴選択について
部屋の構造なのか、窓を開けていてもとても暑い
外は20度ぐらいなのに部屋が28度ってどうなってるんだ
ブログ(というより勉強メモ)と勉強、スクワットは継続しているけど
相変わらずブログっぽく書くことに慣れない
今週末の勉強会参加報告はそれっぽく書けるか
特徴選択
- sklearnの脳の癌のサンプルデータで特徴選択を学ぶ
- サンプルデータには30個の特徴が含まれており、ランダムなデータ・定数値など識別に有効ではない特徴が含まれているかもしれない
- sklearn.feature_selection から SelectKBest、chi2 をimportして試す
- SelectKBestは特徴の中からK個のよい特徴を選択するクラス
- chi2は動画でも説明無し、調べてもいまいち要領を得ない… のでまずは手を動かす
- SelectKBestのインスタンスを作成、fitで学習、transformで特徴を選択した新しい学習データを作成する
# selectkbestのオブジェクトを作成、カイ2乗基準を使用、20個取ってくるskb = SelectKBest(chi2, k=20)skb.fit(X_train, y_train)
# fitの時点ではまだ特徴は30個のまま、transformで20個取り出してくるX_train_new = skb.transform(X_train)
- 上記では20個の特徴を選択したが、20個が最も精度が出るとは限らないので特徴選択を1-31個まで変化させながら精度を確認する
- 精度、標準偏差を確認するとkの数は特定の値で頭打ちする
- 今回の場合は最も精度が出るkの値は26、しかし30の場合(特徴選択をしない場合)でも精度は変わらない
- 精度は変わらなくとも特徴量を減らすことで計算するための負荷が軽減するため有用と言える