こんにちは、ブレインズテクノロジーの柴田です。
今回はImpulseの便利機能の1つとして、時系列異常検知の前処理機能をご紹介します。
Impulseの前処理機能とは
Impulseの時系列異常検知アプリケーションでモデルを作成する際、いくつかの学習に関する条件を設定できます。その1つが前処理です。
前処理を設定することで、前処理をした状態のデータに対してモデルを作成することができます。
前処理では以下の設定が可能です。
データセット全体
- モードフィルタ
- 欠損補完
- リサンプル
各カラムに対する処理
- 比率変換
- ウィンドウ処理
- 標準化
- 対数変換
- クエリ
カラムに対する前処理設定は一度に複数設定可能です。
また前処理設定前処理の設定はモデル単位で紐づいているため、1つのデータセットに対して様々な前処理設定を試すことが可能です。
前処理の詳細
それでは前処理で設定可能な項目を簡単に紹介していきます。
モード
機器等に複数のモードがある場合に、モードを指定してモデルを作成できます。
例えば、運転情報のカラムに運転・休止の情報が0・1のように数値で出力されている場合、カラムに運転情報、値に0を設定することで、分析対象を運転時のデータに限定することができます。
欠損補完
データに欠損期間がある場合に、欠損を埋める方法を設定します。
リサンプル
データの間隔を一定にする処理の設定です。
デフォルト設定ではリサンプルを実行しますが、長期間のデータ欠落期間のリサンプルをしないような設定も可能です。
比率変換
1つのカラムを指定し、指定したカラムの値を1としたときの割合に、全てのカラムの値を変換します。全てのカラムに対する、値の変動の関係性を見たい場合に使用します。
ウィンドウ処理
ある一定期間の統計量を特徴量としたい場合に設定します。選択可能な統計量は最小・最大・標準偏差・平均・尖度・歪度・範囲(最大-最小)・勾配・単調増加性・単調減少性です。短時間の値のばらつきが大きいデータを平均化してばらつきを抑えたい場合は平均を設定したり、一定期間の変化量を見たい場合に勾配を設定したりするようにして使います。
標準化
選択したカラムの値を標準化(各カラムの値から平均値を引いたものを標準偏差で割る)します。カラム毎のスケールの違いが大きいデータに対し、スケールを合わせたい場合に使用します。
対数変換
選択したカラムの値の自然対数に変換します。1より大きな値の偏りを小さくしたり、1より小さな値の偏りを顕著にしたりすることが可能です。
クエリ
外れ値を除外したい、ある値以上のデータに限定したい等、データをフィルタしたい場合に設定します。
前処理設定の可視化
Impulseの前処理設定では、前処理設定したデータを可視化して確認する機能も備わっています。
これにより、ユーザー自身で設定を確認しながら、前処理設定を調整していくことが可能です。
以下の図は、前処理前と前処理後(モードフィルタ)の模擬データの可視化のグラフです。
模擬データは以下の2カラムです。
・ope_flag:運転状況を表すカラム(:ON=1, OFF=0)
・column1:0.5~0.6の範囲で変動するデータで、OFFの時は0.2の一定値になっている
モードフィルタでON時のみを指定することで、OFF時のデータが削られることがプレビューから確認できます。
モードカラム(ope_flag)のグラフ
分析対象カラム(column1)のグラフ
前処理前
前処理後(ope_flag=1のみ指定)
前処理機能がない場合の異常検知の進め方
異常検知アプリケーションを使った異常検知の進め方として以下のような手順が考えられます。
- データを確認
- データに応じた前処理
- アプリケーションへのデータの取り込み
- 異常検知モデルの作成
前処理機能がない場合、1. 2. をアプリケーション外で実行する必要があります。
データ処理の知識があれば問題ない作業ですが、慣れていない人にはハードルの高い作業と考えられます。
また、アプリケーション外で前処理実行する場合、前処理を変えるたびに新しくデータセットを取り込む必要があります。純粋に手間がかかりますし、データセットの管理が煩雑になります。
Impulseでは、3→1→2→4の順でアプリケーション内で完結させることができるため、データ分析に慣れていない人でも使い易いアプリケーションとなっています。
終わりに
今回はImpulseの前処理機能についてご紹介しました。この記事の執筆時点でImpulseでカバーしきれない前処理もございますが、今後も継続してアップデートされていきますので、ご期待ください。
他にどんな機能があるの?等、Impulseにご興味がございましたら、ぜひご連絡ください。