機械学習にかける前に有効な特徴量を選択するのですが、その手法は以下のように区分されています。https://www.oreilly.co.jp/books/9784873117980/
- filter method、単変量統計: 特徴量個々の分離性・相関係数・分散などを利用。
- wrapper method、反復特徴量選択: 再帰的特徴量削減(Recursive Feature Elimination, RFE)、Boruta など。feature_importance 利用。計算コスト高。
決定木ベースの手法による feature_importance を利用すれば、モデル作成と重要度の評価が同時に実施できます。3つ目の手法としてモデルベース特徴量選択と呼ぶそうです。
分類問題では、決定木ベースのモデルに依存した選択手法が主体でしょう。ライブラリも提供されており、環境は整っています。
逆に、決定木ベース以外のモデルでは feature_importance 属性を利用できませんので、RFE はダメ、モデルベース特徴量選択も当然ダメです(XGBoost や LightGBM 等のモデルが分類問題に対し高精度に機能することを示してきた中で、あえて他の手法に積極的に移行する動機はないのですが)。
決定木ベース以外では、モデルに依存しない指標を利用するようですね。例えば、Permutation importance(組もうかと思ったら、wrapper がありました)。
これは素人でも容易に思いつく手法なのですが、高コスト。完走させるために軽い手法を選択しても結果が良くないと、その中での指標の低下量、重要度を比較するだけになります(木を見て森を見ず状態)。
いずれにしても、何らかの評価・解釈を行って重要度の低い特徴量を破棄し、モデル全体の計算コスト低下、予測精度向上に努める必要があります。
特徴量の評価・選択は前処理に続き必要な作業だと、あらためて認識させられました。
********************************
20200104追記
技術評論社「Kaggleで勝つデータ分析の技術」でも同じ3区分でした。
6.2特徴量選択および特徴量の重要度
6.2.1 単変量統計を用いる方法
6.2.2 特徴量の重要度を用いる方法
6.2.3 反復して探索する方法
手法に関しては以下の記載がありました。
「なお、scikit-learn のドキュメントにはモデルの選び方として図4.8がありますが、データが十分にあるテーブルデータの回帰や分類のタスクでは、GBDT でうまくいくことが多く、このように細かに条件で分岐させる必要はあまりないでしょう。」p230
0 件のコメント:
コメントを投稿