データセットを用いて説明変数 X と目的変数 Y との間でモデル Y = f(X) を構築するときの話です。材料のデータセットを扱うときは、X が化合物の化学構造や結晶構造や金属の特徴量だったり、単体や化合物の組成比だったり、その他の実験条件・製造条件だったりします。サンプルは、化合物の種類を変えてその物性や活性を測定したサンプルだったり、化合物の種類は固定してその配合比や反応温度や反応時間などの実験条件もしくは実験レシピ、すなわち材料の作り方を変えて、その結果としての物性や活性を測定したサンプルだったりします。それぞれ X を適切に準備して解析すれば、特に問題はありません。
一方で、中には化合物と実験条件をどちらも変えて実験したサンプルを扱うこともあります。化合物は同じで実験条件が異なるサンプルがあったり、化合物も実験条件も異なるサンプルがあったりします。このときは化合物の特徴量と実験条件の特徴量を横につなげて合わせて X として Y との間でモデル Y = f(X) を構築します。ただ、このようなデータセットを扱うときは、構築したモデルを用いる目的によっては、解析の仕方において注意することがあります。以下で説明します。
化合物は既存の (データセット内にある) ものでよく、実験条件の最適化をすることが目的のとき
このときは、一般的なデータ解析の仕方で問題ありません。X と Y の間で回帰モデルやクラス分類モデルを構築し、そのモデルの予測精度を評価し、モデルの適用範囲を設定し、逆解析を行うという流れ、すなわちこちらの流れです。
新たな化合物を探索することが目的のとき
このとき、特にモデルの評価において注意することがあります。目的が新たな化合物探索であるため、現状のデータセットにはない化合物に対して、どれくらいの精度で予測できるかを評価する必要があります。しかし、たとえばトレーニングデータとテストデータにランダムに分割し、トレーニングデータでモデルを構築してテストデータを予測する、といった一般的なやり方でモデルの評価をしてしまうと、トレーニングデータとテストデータの両方に含まれる化合物が出てくる可能性があります。そうなると新たな化合物に対する予測精度を評価できません。
そこで、同じ化合物で実験条件だけ異なるようなサンプルは、一つのグループと考えます。そして同じグループのサンプルがトレーニングデータとテストデータに分かれることがないように、グループ単位でトレーニングデータとテストデータに分割します。もちろんクロスバリデーションやダブルクロスバリデーションのとき、トレーニングデータとテストデータに分けることを繰り返しますが、その際も同じようにグループ単位で分割します。
この方法でサンプルを分割してモデルの評価をすることで、新たな化合物に対してどれくらいの予測制度をもつか検討できます。この予測精度が高いモデルを選択することで、新たな化合物を精度よく予測できるモデルを選択できます。
一般的には、化合物のグループを考慮しないで完全にランダムにサンプルを分割した方が、テストデータの予測誤差は小さくなります。しかし、新たな化合物を探索することが目的である以上、たとえ予測誤差が小さくなっても、評価方法が誤っていてはまったく意味がありません。テストデータに対する予測誤差は小さくても、新たな化合物の予測がまったくできないモデルを選択してしまう危険があります。そのため、上に述べたように化合物のグループごとにトレーニングデータとテストデータに分割する必要があります。
以上のように、単体・化合物と実験条件・製造条件の両方が変わるデータセットを扱うときは、そのデータセットを解析する目的に応じて、適切な解析方法を用いるようにしましょう。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。