Permutation Importanceで重要な特徴量を知る

Permutation Importanceで重要な特徴量を知る

機械学習モデルがどの特徴量を重要視しているかを確認する手法の一つにPermutation Importanceという手法があります。

下記サイトのAlgorithmの段落が非常にわかりやすいです。

https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html

上記サイトを読めば十分なのですが、簡単にメモを残しておきます、、、

概要

ある特徴量の重要度はその特徴量が利用できなくなったときに減少するスコア(mse, accuracy…)の大きさで測ることができるというのが、Permutation Importanceの基本的な考え方です。

上記のコンセプトを単純に考えると、すべての特徴量を利用して作成されたモデルと、ある特徴量だけが利用されずに作成されたモデルのスコアを比較することで、ある特徴量の重要度がわかることになります。

一方で、各特徴量ごとにモデルを作成するのは時間もかかり大変です。

そこで、モデルの作成はすべての特徴量を利用し、テストデータに対するスコアの計算時にだけ利用する特徴量を選択するというのがPermutation Importanceの具体的な方法になります。

上記では特徴量の選択と言いましたが、特徴量を利用しないのではなく、テストデータに含まれるその特徴量の値でシャッフルします。これは、実際に利用される値の範囲でのランダムな値を使うために行います。

あとは、すべての特徴量を利用して計算されたスコアと、ある特徴量だけがランダムにシャッフルされた入力を利用して計算されたスコアから、スコアの減少率を計算します。

減少率が大きい特徴量ほど重要な特徴であり、減少率が小さい特徴ほど重要な特徴ではないと言うことができます。

利点

利点はどんな学習アルゴリズムで作成されたモデルに対しても、特徴の重要度を計算することができる点だと思います。

決定木アルゴリズムなどでは木から重要度を計算できますが、重要度を計算するのが難しいモデルもありますよね。