少しでも目的変数と関係しそうな特徴量は入れていきましょう!(間違っているかもなんて気にしない!)

分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。

特徴量 x を検討することで、モデルの予測精度を向上させることができ、特徴量エンジニアリングともいわれます。とはいえ、分子、材料、プロセス、もしくは実験系やシミュレーション系ごとに重要な x は異なるため、データ解析・機械学習をしようとしているサンプル郡において、重要な x が決まっているわけではありません。もちろん、基本的にこのあたりの x から検討しましょう、というものはあります。例えば、実験条件でしたら、サンプルごとに値を振った実験条件はすべて x に入れたほうがよいですし、分子記述子であれば RDKit のようにまずは基準にして検討をはじめるものもあります。

基本的な状態から、さらにモデルの予測精度を上げようとすると、データ解析・機械学習する方、もしくはそのチームが、x を検討する必要があります。このとき、y と関係していると少しでも考えられるパラメータ・変数は、x に追加した方がよいです。そもそも、データ解析・機械学習する際、与えられた分子、材料、プロセス、もしくは実験系やシミュレーション系において、重要な x が最初から明確に分かっていることはありません。もし分かっているのであれば、むしろデータ解析・機械学習をするまでもなく理論的にすべて設計できるといえます。理論的・経験的に設計できないため、データ解析・機械学習をするわけで、そもそも何が y に効いているのか分からない状況で、検討を始めることになります。

データセットがあるとき、データ解析・機械学習でどんな x でも y との間の相関関係を見つけてくれるわけではありません。大前提として、(高次元空間における) x の値が近いものは y の値も近い、ということがデータ解析・機械学習をする必要条件としてあります。そのような x、すなわち y と関係のある x がなければ、どんなデータ解析・機械学習機械の手法であっても、良好な予測精度をもつモデルを構築することはできません。そのため、本当は y に効いていないかもしれませんが少しでもその可能性があれば、どんどん x として採用していく必要があります。

このとき、まずは不要な特徴量か x に混ざってしまっても OK とします。データ解析・機械学習の手法の中には、不要な x を省ける方法がいくつかあります。例えば Boruta です。

Boruta の使い方
特徴量選択手法もしくは変数選択手法の一つに、Boruta があります。 こちらのこちらに書いた通り、 特徴量選択では、「予測精度」が上がるように特徴量を選ぶというより、不要な特徴量を削除するという意識で実施するとよいです。なぜなら、たとえト...

 

重要な特徴量が x に含まれていなければ、いくら Boruta を使っても予測精度の高いモデルはできませんが、重要な特徴量がいくつか含まれている中で残りの特徴量が不要でなものという状況であれば、Boruta により重要な特徴量のみ選択することは可能です。

ご自身の分子、材料、プロセス、もしくは実験系やシミュレーション系でデータ解析・機械学習によりモデルを構築するときは、場合によっては色々な方と議論して、y を説明する上で重要な特徴量を x にどんどん追加しましょう。その際、データ解析・機械学習する前に、提案した特徴量を否定することはせず、まずは x に追加して検討してみて、モデルの予測精度を比較検討するとよいと思います。たとえ全く新しい特徴量でなくても、既存の特徴量もしくは特徴量の組み合わせから変換することで、x として新たな情報を追加することもできます。ぜひご検討ください。

 

以上です。

質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました