モデルを運用することを想定して、モデルの設計をしましょう!

説明変数 X と目的変数 Y の間でモデル Y = f(X) を構築するとき、やはり今あるデータで構築できる最適なモデルを構築したいと思います。そのためモデルを設計します。新たな X を提案・作成したり、X の組み合わせを選んだり、回帰分析手法・クラス分類手法といったモデル構築手法を選んだり、モデルを評価したりします。このようなモデル設計のときには、そのモデルを実際どのようなシチュエーションで運用するかを想定しながら行うとよいです。

例えば化学構造の設計にモデルを使用することを考えます。コンピュータで生成した化学構造をモデルに入力することで、物性・活性 Y の値を予測し、その予測結果が良好な化学構造を選択することになります。ここで X として物性など実際に合成しないと得られないパラメータを用いてしまうと、Y の値を予測するためにその物性値が必要になるため、構築されたモデルをコンピュータでの化学構造の設計に使用することはできません。そのためコンピュータで計算できる X のみ使用します。もちろん第一原理計算が必要な場合には、そのぶん一つ一つの化学構造の X の値を得るまでに時間がかかるため、化学構造の設計にも時間がかかることを考慮する必要があります。

材料設計における X の選び方についても同じです。例えばポリマー設計のとき、分子量や分子量分布を X に入れてしまうと、それらは実際にポリマーを重合して測定しないと得られない値であるため、コンピュータで材料設計をすることはできません。材料設計のときにも X としてコンピュータで計算できるもののみを使用する必要があります。

モデルの評価やそれに基づく設計のときに使用するサンプルについても、実際にモデルを使用するシチュエーションを考える必要があります。例えば時系列データの解析の一つとして、バッチプロセスのデータを解析するとき、Y の値が一バッチの運転中にも、時々測定されることを考えます。バッチプロセスの運転中に Y の値をモニタリングするためにモデルを使用する場合には、Y の値を予測しながらも、実際の Y の値が測定された後にそれを新たなサンプルとしてデータセットとして取り込みながら、モデルを更新することができます。そのため、同じシチュエーションを想定して、トレーニングデータのバッチとテストデータのバッチに分けてトレーニングデータのバッチで構築したモデルをテストデータのバッチで評価する、といった方法ではなく、テストデータのバッチ中のサンプルも用いてモデルを更新しながら、新たなテストデータに対するモデルの予測性能を評価して、その評価が高いモデルやモデル更新方法を選択したほうがよいです。

ただ一方で、バッチのプロセス条件を設計するためにモデルを使用する場合は、プロセス条件からバッチ中の Y の値を予測するために、バッチを運転している最中の Y の値を用いることはできません。そのため、テストデータにおける一バッチの Y の値は得られないものとして、モデルの評価を行い適切なモデルを選択するとよいです。

以上のように、実際にモデルを運用するシチュエーションを考えながら、使用する X やモデルの構築・評価に用いるサンプルを考えてモデルの設計をするようにしましょう。

 

以上です。

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

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