分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
線形モデルでも非線形モデルでも、モデルを構築するとき、そのモデルを解釈するため x の重要度 (変数重要度・特徴量重要度) を計算することがあります。回帰分析においては、y の値を予測する上で重要な x に対する値が大きくなるように各 x の重要度が計算され、クラス分類においては各クラスを分類する上で重要な x に対する値が大きくなるように各 x の重要度が計算されます。
金子研では、任意の回帰分析手法、任意のクラス分類手法において、安定的に変数重要度を計算可能な CVFPI (Cross-validated Permutation Feature Importance) を開発しました。
CVPFI は Datachemical LAB にも搭載されています。
CVPFI により、サンプルが少ない状況においても、線形モデルだけでなく非線形モデルの x の重要度を計算できます。さらに、x の間に相関関係があるときでも、その相関関係を考慮した上での x の重要度の計算が可能です。
回帰分析において CVPFI を用いると、y の値全体を予測する上で重要な x の CVPFI が大きな値になります。この時点では、y の大きな値を予測する上で重要な変数なのか、y の小さな値を予測する上で重要な変数なのかはわかりません。もし、y の目標が大きな値であり、y の値を大きくする上で重要な変数を見つけたい場合であっても、単純な重要度だけでは y の値を小さくする上で重要な変数の重要度が大きくなる可能性があります。
そのような場合には、y に閾値を設けて、閾値を超えたサンプルの y の値を 1、閾値以下のサンプルの y の値を 0 としたクラス分類にして CVPFI を計算するとよいです。これにより、y の大きな値を予測するのに重要な特徴量の CVPFI の値が大きくなります。もちろん、y の目標値が小さな値であれば、y に閾値を設けて、閾値以下のサンプルの y の値を 1、閾値を超えるサンプルの y の値を 0 としたクラス分類にして CVPFI を計算しましょう。
クラス分類において、あるクラスの分類に特化した x を調べたいことがあると思います。一方で、単純に変数重要度を計算すると、その対象のクラスに限らず、他のクラスをよく分類できる x の CVPFI の値も大きくなります。CVPFI の値が大きい x を見たときに、対象としていないクラスの分類に重要な x が選ばれてしまう可能性があります。このときは、対象のクラスのみを 1、対象のクラス以外のクラスを統合して 0 とし、改めてクラス分類の CVPFI を計算しましょう。これにより、対象のクラスかそれ以外のクラスかを分類する上で重要な x の CVPFI の値が大きくなります。
以上のように、回帰分析において y の大きな値もしくは小さな値を予測する上で重要な x や、クラス分類においてクラスに特化して重要な x を検討したい際は、上の方法を参考にしていただければと思います。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。