測定条件・分析条件・評価条件の異なる物性や活性のデータの扱い

シェアする

説明変数 x と目的変数 y の間で、機械学習によりデータセットからモデル y = f(x) を構築することがあります。y として物質の物性や活性が用いられますが、例えば温度や圧力といった、物性や活性の測定条件・分析条件・評価条件が異なるデータが含まれることがあります。温度の値を設定して物性値を測定したり、温度を変えながら触媒活性を分析したりした場合です。すべてのデータで条件が統一されていれば、物性や活性ごとに一つの y として扱いモデルを構築することができますが、いろいろな条件、例えば異なる温度で測定された y の値が混在しているとき、モデルを構築する前にデータセットの整理を工夫する必要があります。

このときのデータセットの整理の仕方として大きく分けて以下の二つがあります。

  • 物性や活性は同じでも条件ごとに y を作成する
  • 条件という特徴量を作成して x とし、物性や活性を y とする

それぞれ説明していきます。なお今回は条件の異なる特徴量として y を想定して説明しますが、以下の説明は x に含まれるときでも対応可能です。適時 y と x を置き換えてお読みいただければと思います。

物性や活性は同じでも条件ごとに y を作成する

温度や圧力などの、活性や活性を測定するときの条件が異なるデータについて、例えば温度が 30℃ のときの物性、温度が 50℃ のときの物性のように、条件の値ごとに別の y として設定します。一つの物性に対して、条件の種類の数が y の数になります。このようにデータセットを準備した後に、条件の値ごとの y を予測するモデルを構築し、各条件における y の値を予測したいときは対応するモデルを用います。

この方法のメリットとして、条件が固定された物性値や活性値であるため、ある程度妥当なモデルを構築できると考えられます。

ただ注意点として、統一された条件の値でのデータがないことがあります。この場合の一つの方法としては、例えば 30℃ から 35℃ のように、ある程度の幅をもって一つの y を作成します。31℃ の物性値も、32 ℃の物性値も同じ一つの y になります。もちろんこの範囲は注意して設定する必要があります。なぜなら、この範囲の物性値や活性値は、あたかも同じ温度で測定されたかのように、モデル構築のときに扱われるためです。そのため、物性値があまり変化しない範囲を指定する必要があります。

また、物質によっては指定した条件の値での測定値がないこともあります。データセットが穴あきになるということです。この場合は、iterative Gaussian Mixture Regression (iGMR) により穴を補完してからデータセットを用いるとよいです。

[Pythonコードあり] iterative Gaussian Mixture Regression(iGMR)で欠損値を補完しましょう!(目的変数があってもなくても構いません)
下図のような欠損値 (欠損データ) のあるデータセットがあるとします。穴あきのデータセットですね。 こんなとき...

このようにしてデータセットを整理した後に、y と x の間で、場合によっては y ごとに、モデルを構築します。

条件という特徴量を作成して x とし、物性や活性を y とする

測定条件・分析条件・評価条件という特徴量を x にして、物性や活性を y にする場合は、物質ごとに他の特徴量の値はまったく同じにして、条件の特徴量 (x) と物性や活性 (y) の値のみ異なるサンプルを準備します。一つの物性に対して、一つの y になります。

この方法であれば、上の方法のように範囲を考える必要はありませんし、穴あきのデータセットになることもありません。

ただ、例えば温度が条件のとき、物質の特徴量と物性の間の関係と同時に、物性の温度依存性もモデル化することになるため、モデル構築の難易度は上がります。場合によっては、温度や他の特徴量を用いて、適切な特徴量を作成する必要があるかもしれません。

また評価するときも注意する必要があります。今回のデータセットでは、物質一つに対して、異なる複数のサンプル、つまり温度等の条件の値が異なる物性値のデータが存在することになります。そのため、例えばランダムにトレーニングデータテストデータに分けたとき、トレーニングデータにもテストデータにも同じ物質のサンプル (温度等の条件の値のみが異なるサンプル) が存在することになり、新しい物質に対する予測性能を評価することができません。そのため、サンプルを物質ごとのグループに分けて、グループごとにトレーニングデータとテストデータに分ける必要があります。

測定条件・分析条件・評価条件の異なる物性や活性のデータを扱うときは、以上のようにモデル化するとよいと思います。どちらがよいかは、構築したモデルを使用する目的にもよります。どちらでも良い場合は、両方でモデル構築して予測性能を検証し、より予測精度が高くなったほうを採用するとよいでしょう。

以上です。

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

シェアする

フォローする