Impulseを使った時系列データ分析:初級編

作成者: brains_shibata|Apr 26, 2021 5:57:28 AM

こんにちは。ブレインズテクノロジーの柴田です。

今回はImpulseを使った時系列データ分析:初級編ということで、単純な時系列データを使ってImpulseでモデルを作成する手順を紹介していきます。機械学習の知識は必要ありません(Impulseに関連する機械学習の用語説明等は今後本ブログで紹介していく予定です)。この記事でImpulseの使い方のイメージを掴んでいただけたら幸いです。

今回使用するデータ

使用するデータは乱数を使って分析用に作成した時系列データになります。データ項目は以下の4つです。

  • datetime:2020-01-01 00:00:00から2020-12-31 00:00:00までの1日ごとの日付
  • column1:0.2以上1.0未満の範囲の乱数
  • column2:column1を1.5以上2.0未満の乱数倍した数値(column1と相関のあるデータ)
  • column3:column1とは異なる0.2以上1.0未満の範囲の乱数(column1と相関のないデータ)

またcolumn1, 2には上記の数値を少し加工した以下の異常を含ませています。

  • 異常1:column1→1.2以上2.0未満の範囲の乱数、column2→column1を1.5以上2.0未満の乱数倍した数値(10月に挿入)
  • 異常2:column1→0.2以上1.0未満の範囲の乱数、column2→column1を0.8倍した数値(12月に挿入)

分析の手順

それでは分析を始めていきましょう。

データのアップロード

データセットタブの「+作成」ボタンからデータセットを作成します。

まずデータセット名を入力します。今回は「data_demo」としました。データセット名は後から変更可能です。

次にデータセットタイプ(CSV/画像/動画)を選択します。時系列異常検知ではCSVを選択します。

タグは任意項目で付けても付けなくても構いません。タグ付けするとタグでデータセットを絞り込む等ができます。

そしてファイルを選択します。

「作成」ボタンを押せばデータセットの作成は完了です。

作成したデータセットを選択するとデータを確認することができます。プレビュータブでは各データ項目の具体的な数値を確認することができ、可視化タブでは折れ線グラフと散布図でデータを可視化して確認することができます。折れ線グラフで可視化してデータを確認してみます。

異常を挿入した10月と12月でデータ傾向が違うことが確認できました。

モデルの作成

プロジェクトの作成

モデルはプロジェクト単位で管理されます。プロジェクトが既にある場合は該当のプロジェクトを選択、ない場合は「+作成」ボタンで作成します。今回は「project_demo」という名前でプロジェクトを作成しました。

モデルの作成

プロジェクトを選択し、「+作成」ボタンを押してモデルを作成します。モデル名を入力し、アプリケーションを選択します。アプリケーションは実行したい分析の種類に合わせて、「外観検査」または「時系列異常検知」から選択します。

モデル作成は以下のフローで進みます。

    1. データ選択:モデル作成に使用するデータをデータセットの中から選択する
    2. 特性分析:項目の相関度やデータの分類など
    3. 学習設定:モデル作成に使用するデータ項目の選択、学習・評価期間の設定、モデル作成の前処理や推論方法の設定
    4. 評価:モデルの評価

特性分析はデータ選択後に自動的に実行されます。特性分析が完了すると、学習タブから以下の学習設定を行うことができるようになります。

  • カラム選択:分析に使用するカラムを選択します。特性分析の結果として提示されるグループから選択することもできますし、任意の項目を選択することもできます。今回は「互いに相関の強いグループ」としてcolumn1とcolumn2のグループが提示されました。モデル作成はこのグループで進めます。
  • 学習期間・評価期間:学習期間はモデルに学習させるデータの期間で、正常なデータの期間を指定します。評価期間は作成したモデルを評価するためのデータ期間です。評価期間に異常データを含ませることで、異常が判断できたかどうかでモデルを評価します。
  • 学習詳細設定:データの前処理や推論のパラメータを変更できます。基本的にはそのままで問題ありません。

また、学習タブの横のラベルタブではデータが正常か異常かどうかのラベル付けが可能です。デフォルトでは全データに正常ラベルが付いています。異常期間を指定し、「「異常期間」として設定」ボタンを押すことで異常ラベルを付与できます。下図は10月と12月に異常ラベル付与後のグラフです。

学習タブに戻り、「学習実行」ボタンを押すとモデル作成が始まります。

モデル作成が完了すると、評価タブから分析結果を確認することができます。

パイプラインを選択することで各前処理・推論方法での分析結果を確認することができます。デフォルトでは性能が一番良いモデルが選択されています。選択されたパイプラインの具体的な前処理・推論方法やパラメータ等はパイプライン構成から確認できます。

判定結果としきい値調整の項目では、以下を確認することができます。

  • 混同行列:正常データ・異常データそれぞれに対するモデルの判定結果をまとめた表(下図左上)。ピンク色の部分が小さい値であるほど良いモデル。
  • スコア:データの異常度を数値化したもの。下図のグラフ上で、学習期間は緑色、評価期間は青色で図示されている。スコアが大きいほど異常度が高く、スコアがしきい値より大きい場合に異常と判定される。

今回の結果を確認してみましょう。まず混同行列を確認すると、正常データを異常と判断した件数(過検出)が2件だけありますが、異常データを全て異常と判定しています。グラフを確認すると、確かに異常1と異常2の期間でスコアが大きくなっており、正常データと明確な違いがあります。判定結果に不満がある場合、しきい値を変更することで結果を改善することができる可能性があります(例えば今回の結果で、正常データを異常データと判断する件数を0件にしたい場合はしきい値を大きくする)。しきい調整では精度が向上しない場合は精度改善アクションを取ります(今後ブログで紹介予定であるので、今回は省略します)。今回の場合、2件の過検出はしきい値調整で改善できませんが、異常を漏らさず検知しているため、精度は十分と判断しました。以上でモデル作成は完了となります。

 

まとめ

今回は初級編として簡単なデータを使用して時系列データの分析を行いました。画面に従って進めていくことで簡単に分析できることがお分かりいただけたでしょうか。一般的なしきい値ベースでは異常検知の難しい異常(今回の異常2のようなデータ)も簡単な手順で見つけることができました。Impulseでは今回紹介した時系列異常検知の他にも機械学習アプリケーションを提供しています。今後本ブログで紹介していきますのでお楽しみに(時系列データ分析:上級編もあるかも…?)。