分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
モデルに関して、予測精度の高いモデルを構築することも重要ですし、構築したモデルを解釈することでデータセットが取得された実験系やシミュレーション系に新たな知見をフィードバックすることも大事です。モデルの予測精度の向上や解釈性の向上のため、x を検討することが行われます。特徴量エンジニアリングと呼ばれることもあります。
特徴量エンジニアリングの方針は、大きく分けて2つあります。
1つは、理論的に x を作成して、機械学習で検証する方法です。データセットを取得した実験やシミュレーションにおける、物理的・化学的背景に基づいて、理論的に x を作成します。もちろん、作成した x が y と 100% 関係していると、自信がある必要はありません。作成した x を追加する前と追加した後でモデルの予測精度を比較することで、作成した x の効果を検証したり、x の特徴量重要度により作成した x の位置づけを確認したりします。
もう一つは、機械学習的に x を作成・選択して、理論的に検証する方法です。x の二乗項や交差項、対数変換や指数変換など、また複数データや時系列データのときには様々な統計量など、考えうる様々な変数変換を特徴量ごと、もしくは複数の特徴量の組み合わせで実施し、多くの x を作成します。それらの x の中から、y を説明するモデルの予測精度が高くなると考えられる x のみ選択したり、特徴量重要度に基づいて y にとって重要と考えられる非線形変換を選択したりランキング付けしたりします。そして、選択された x や x のランキングを見て、理論的に結果は妥当か、妥当であれば実際にどのようなメカニズムになっているか検証します。
どちらの方法が良いのか聞かれたときは、基本的に前者の、理論的に x を作成して機械学習で評価する方法をオススメしています。なぜなら、後者の方法では偶然の相関 (chance correlation) に注意が必要だからです。
機械学習的に、たくさんの特徴量を生成し、それらの中から重要と考えられる x のみ選択するとき、偶然の相関が容易に起こります。LASSO, GAPLS, GASVR, Boura などを使った場合も同様の危険があります。
例えば、テストデータの評価値 (r2 や正解率など) が高かったとしても、有意なモデルとはいえません。そして有意なモデルではないということは、選択された x や重要度の高い x が、本当に重要とは限りません。この偶然の相関の影響が、後者は大きくなるため、もちろん前者の方法における影響が 0 というわけでありませんが、比較的に危険性の小さい方法である、理論的に x を作成して、機械学習で検証する方法をオススメしています。理論的に x を作成できないときに、機械学習的にデータセットから有意な x を生成して欲しいという要望や気持ちは非常によく分かりますが、一方で上のような危険もあることを承知していただければと思います。
ちなみに、x と y の間の非線形性ということであれば、新たな特徴量を生成するのではなく、非線形の回帰分析手法や非線形のクラス分類手法を使うことでも評価できます。非線形性を解釈したいのであれば、そのような回帰分析手法・クラス分類手法により非線形モデルを構築して、そのモデルを解釈することで x と y の間の関係を検討することも可能です。
なお、こちらをお読みいただいている、ご自身のデータセットや実験系・シミュレーション系で特徴量エンジニアリングの壁を感じていたり難しさを考えていたりする方は、ぜひご相談いただければと思います。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。