分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
例えば、バッチプロセスの終点予測やプロセスにおける時間変化の設計・プロファイル設計など、時系列データを特徴量として使用する場合があります。この時、サンプルごとに時間が一致していれば、単純にプロセス変数の各時刻といった特徴量とすることができ、サンプルごとにプロセス変数の各時刻の値を用いることができます。しかし、サンプルごとに時間が異なる場合、データセットに空白ができてしまい、いわゆる穴開きのデータセットになってしまうため、何らかの対策が必要です。
この対策には大きく分けて4つあります。
順に説明します。
1. 時系列データから各種統計量などの特徴量を計算する
単純に時刻ごとのプロセス変数の値を並べるのではなく、プロセス変数の時系列データから統計量などで特徴量を計算します。例えば、時系列データの最大値、最小値、平均値、標準偏差、中央値等の四分位点などです。ここで、単純に統計量を用いるだけでなく、ドメイン知識に基づいてプロセス変数ごとの時間変化として重要な特徴を数値化すると、モデルの予測精度の向上に貢献します。例えば、初期の立ち上がりが重要であれば初期の上昇速度を計算して特徴量とします。ある閾値以上の温度が重要であればその温度以上になった時間を計算して特徴量にします。時系列データから多くの特徴量を計算可能な tsfresh を用いても良いでしょう。
2. 時系列データ間の類似度を計算する
プロセス変数ごとに、サンプル間の類似度として時系列データ間の類似度を計算します。例えば、Dynamic Time Warping (DTW) を用いることで、時系列データの時間が異なっていても、時系列データ間の類似度を計算できます。この類似度を特徴量として使用します。詳細はこちらをご覧ください。
3. 時間の短い時系列データの値を補完する
穴あきのデータセットに対して、何らかの値で時系列データを補完します。例えば、0 で補完したり、時系列データごとの平均値、最終値で補完したりします。なお、そのままでは最も長い時間の時系列データに合わせていることになりますが、補完した後に特徴量選択をすることで、どの時刻までの時系列データを使用するか選択することもできます。
4. フーリエ変換する
プロセスごとの時系列データに対してフーリエ変換をすることで、時間領域から周波数領域に変換し、それを特徴量として使用します。詳細はこちらをご覧ください。
以上が、サンプルごとに時間が異なる時系列データを特徴量として扱う4つの方法です。なお、3と4の方法は直接的逆解析につなげることも可能です。
ぜひご検討ください。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。