2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Azure AIAdvent Calendar 2019

Day 20

Check! Anomaly Detector の JavaScript ライブラリを Vue.js で試そう!

Posted at

こんばんは! @dz_ こと大平かづみです。 👩‍💻:christmas_tree:

Azure AI Advent Calendar 2019 20日目のエントリーです。

(半日ハッカソンのごとくコードを書いたので、若干ランナーズハイ状態で記事を書いています。ラフなテンションをお許しください…!)

Prologue

Microsoft Cognitive Services といえば、画像分析や Speech-to-text、翻訳などが思い浮かぶと思いますが、実は Anomaly Detector という異常検知のサービスも提供されているのをご存知でしょうか?(※まだプレビュー公開です。)

Anomaly Detector は、IoT やログ分析などの分野で活用できるのでとても興味があります。しばらくは C# または Python 向けのクライアントライブラリしかなかったのですが、確認したところ JavaScript のクライアントライブラリも登場していたので早速触ってみます!

つくってみました

まず、 ローカルで動かせるデモを作成してみました。

Cognitive Services のアカウント作成は手でポチポチやるのが面倒なので、ARMテンプレートで書きました♪ コマンドラインでさっと作成することができます。(ニーズはあるのか)

サンプルは、クイック スタート:Python 用 Anomaly Detector クライアント ライブラリを使用してデータの異常を検出する - Azure Cognitive Services | Microsoft Docs を参考に、 Vue で書いてみました。本当に動くだけの最低限しか実装していないので、すごい見た目がさみしいのは勘弁してください。(フロントエンドスキル向上は来年の抱負に…!)

image.png

今学んだことはコードにしたので、コードから読み解いてください👩‍💻🚀♪

簡単に解説

このサンプルでは、QuickSatrt のサンプルデータを使い、Anomaly Detector で異常検知しました。結果はこんな JSON が返ってきます。

読み取りにくいデータ構造に見えますが、おそらくグラフとしてプロットしやすくなっていると思います。異常かどうかは isAnomary の値を確認し、配列の同じ位置にあるデータから情報を読み取ります。

{
  "period": 7,
  "expectedValues": [
    32894418.9615615,
    29707932.24471988,
    22651867.032410353,
    24943247.98913801,
    ...
    35344244.421857625
  ],
  "upperMargins": [
    328944.1896156147,
    297079.3224471994,
    226518.67032410204,
    249432.47989137843,
    ...
    353442.44421857595
  ],
  "lowerMargins": [
    328944.1896156147,
    297079.3224471994,
    226518.67032410204,
    249432.47989137843,
    ...
    353442.44421857595
  ],
  "isAnomaly": [
    false,
    false,
    false,
    true,
    ...
    false
  ],
  "isNegativeAnomaly": [
    false,
    false,
    false,
    false,
    ...
    false
  ],
  "isPositiveAnomaly": [
    false,
    false,
    false,
    true,
    ...
    false
  ]
}

後日もう少し深堀してみようと思います。

Epilogue

まずなにから着手したかって、ARMテンプレートでアカウント作るとこでした。完璧!

とはいうものの、今回は時間がギリギリで動かしてみるところまでしかできなかったことは悔やまれます。インタラクティブにデータを入力したり、結果をグラフにプロットするサンプルも作ってみたいです。

また、この Vue アプリを Web app にデプロイしておけばみなさんにも触っていただけるデモ環境として、Web app で公開できたらいいなと思います。更新できたらまたお知らせします~👩‍💻🚀

それでは、良いお年を!🎍🌠

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?