スパースな(疎な)実験データセットを解析するときの一工夫

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

モデルを構築するデータセットにおいて、例えばあまり頻繁に用いられていない添加剤の種類がたくさんあるとき、添加剤ごとの組成が実験条件にあると、x は多い一方で、それらの x の値としては 0ばかり並んでいる (一つの添加剤に着目すると用いられているサンプルがほとんどないが、そのような添加剤がたくさんある)、といったことがあります。このようなデータセットをスパースな (疎な) データセットと呼んだりします。もちろん、あまり用いられていない添加剤の種類がたくさん場合以外でも、スパースなデータセットは存在しますが、とりあえずこの記事では、添加剤のイメージで説明を進めます。ご自身のデータセットに合わせて適時 読み替えていただけますと幸いです。

このようなスパースなデータセットを扱うとき、問題になることがあります。一つは、トレーニングデータとテストデータに分割するときに、トレーニングデータだけ取り出すと 0しか含まれない (分散ゼロの) x が出てきてしまうことです。このような x はオートスケーリングできませんし、オートスケーリングしなかったとしても y への影響をモデリングできません。この添加剤の y に対する効果を考慮できないわけです。

x ごとに、0以外の値のあるサンプルがある程度存在していることが重要になります。このようなとき、添加剤をいくつかのグループに分け、グループごとに一つの x にするとよいです。グループごとに、そのグループの添加剤の組成という x を作ります。具体的には、同じグループの添加剤の (組成の) x を合計するだけで OK です。こうすることで、一つ一つの添加剤はあまり使われてないかもしれませんが、グループとしてであれば、ある程度のサンプルで使われていることになり、スパース性が解消される方向に向かいます。

もちろん、グループを作るときには、なるべく y に対する効果が似ている添加剤を同じグループにするようにしましょう。もちろん、ある程度 えいや でグルーピングする必要あるかもしれませんし、添加剤の特徴量があるときは、別途、添加剤のデータセット (サンプルが添加剤) でクラスタリングをしてもよいでしょう。特徴量ごとに 0ばかり並んでいて、トレーニングデータ・テストデータ分割やクロスバリデーションで不都合のあるときは、ぜひご検討ください。

 

以上です。

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

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