どのクラス分類手法でも変数重要度 (特徴量重要度) を計算する機能を DCEKit に搭載しました!こちらの回帰分析における Cross-Validated Permutation Feature Importance (CVPFI) のクラス分類版です。
![](https://datachemeng.com/wp-content/uploads/アートボード-141.jpg)
重要度が 0 を有意に超えるようであれば、その説明変数 x はモデルの予測精度に貢献しているといえます。しかも、x の間に相関関係があっても、適切に重要度を計算できます。
変数重要度というと、ランダムフォレスト系の重要度が有名ですが、CVPFI では、任意の回帰分析手法・クラス分類手法で変数重要度を計算できます。
さらに、これまでの変数重要度は、ある変数 A と、A と相関の強い変数 B が x にあるとき、A や B が実際に重要であっても、変数重要度は低く見積もられてしまう問題がありましたが、CVPFI ではその問題を解決しています。A も B も (もし重要であれば) 変数重要度が高く計算されます。
クラス分類用の CVPFI は DCEKit で計算できます。
![](https://datachemeng.com/wp-content/uploads/SnapCrab_NoName_2019-8-18_9-12-4_No-00.png)
![](https://pypi.org/static/images/twitter.abaf4b19.webp)
DCEKit における以下のサンプルプログラムで、実際にクラス分類用の CVPFI を使用しています。
- py
こちらを参考にしていただき、ご自身でおもちのデータセットにも CVPFI を展開していただければと思います。
クラス分類モデルの解釈をするときなどに CVPFI を活用できます。なお CVPFI の重要度は、0 を有意に超えるようであれば、その x は少なくともモデルの予測精度に貢献しているといえますが、値がいくつ以上であれば重要というわけではありません。重要度の閾値について検討したいときは、乱数をうまく使うとよいでしょう。
![](https://datachemeng.com/wp-content/uploads/website_phishing.png)
また、CVPFI はランダムフォレストの変数重要度に代わるものであり、任意の回帰分析手法に対して用いることができますので、例えば Boruta の別のクラス分類手法バージョンを CVPFI に基づいて作成することも可能です。
![](https://datachemeng.com/wp-content/uploads/20190623_141109.png)
ご参考になれば幸いです。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。