PLATFORM

異常をどう見つける? 機械学習を使った4つの手法のご紹介 (その2)

前回の記事で Splunk MLTKを使った異常検知手法の2つをご紹介しました。今回は残りの2つの手法についてご紹介します。

ケース3:他の類似データと比べて異なるデータ(異物混入)

類似の多量のデータから異なる動きをしている物を見つけたい。そんな時はこれからご紹介するクラスタリングが有効です。クラスタリングはデータの特性から特定のグループに分類してくれます。分類されたグループがマイノリティーであれば、異常である可能性があります。また同じグループでも中心から外れているものを異常と判断することも可能です。今回はクラスタリングを使った2つのアプローチをみてみましょう。

今回使うデータは Disk が出力するSMARTという健康状態をチェックするためのデータを使います。 DISKモデル毎に3種類の SMARTデータの平均値を計算し、この情報を元にクラスタリングしたいと思います。

スクリーンショットの画面自動的に生成された説明

3種類のデータを元に3D Scatter plot で可視化すると以下の図のように表示できます。これを Smart Clustering機能で2つのグループにクラスタリングしてみます。

次の確認ページにいくと各Diskモデルがどのクラスターに属しているか確認できます。今回はCluster1が一つだけでしたので、このDisk Model(ST33000651AS)が異常と判断できます。

スクリーンショットの画面自動的に生成された説明

また、クラスターの中心部からの距離も確認できます。この中心からの距離が遠いということは、すなわち同じクラスターでも少し異なる動きをしているということです。この距離を使って異常データを検出することも可能です。

最後の実装ページではアラート設定ができますが、ここではこのクラスターの中心からの距離を閾値にして超えたものがアラートとして発報できます。

もし、特定のグループが検出された場合にアラートをあげたければ、個別でアラート設定が必要ですが、実装は可能です。

Smart Clusteringでは K-meansが利用されておりますが、MLTKには他にも BirchやDBSCAN, X-meansなどのアルゴリズムが利用できます。

ケース4:相関性が崩れたデータ(複数あるもののどこかがおかしい)

最後に相関性があるデータに対する異常検知です。例えば水量と温度と電圧に関するデータがリンクして動いているようなケースです。この場合温度が上がっているのに水量が変化しないと異常もしくはその予兆かもしれません。

このような場合は機械学習の予測モデルが利用できます。この予測値と実際の値のズレの大きさで異常と判断するのです。

注意しないといけないのは、それぞれのフィールド間に相関性があるかどうかです。相関性のないデータに対してはこの手法は利用できません。

相関性のチェックには CorrelationMatrix というアルゴリズムが利用できます。以下のアプリ(https://splunkbase.splunk.com/app/4403/) をインストールしておいてください。

今回使うサンプルデータに対して相関性をチェックすると、非常に高い相関性が確認できました。

スクリーンショットの画面自動的に生成された説明

次にデータの正規化をしておきます。データの数値の大きさに違いがでると、予測の重要度に影響が出てしまうためです。正規化にはStandardScalerというアルゴリズムがMLTKに用意されております。正規化されたフィールドには、SS_という頭文字がついて新規に作成されます。

スクリーンショットの画面自動的に生成された説明

次にMLTKのSmart Prediction機能を使ってモデルを作成していきます。モデルの結果も以下の図のように確認することができます。

次のページに進むと、予測に対するフィールドの寄与率が確認できます。
ここでフィールド間に大きな差が出てしまうと、寄与率の低いフィールドに変化があっても気づけないのでなるべく同じくらいになるようにする必要があります。

実際に異常が見つかったサンプルデータに対して、先ほどのモデルを適用してみます。以下のように、予測値と実測値の差分を可視化してみると後半に差が大きい箇所が見つかりました。この結果は実際に異常が発生したタイミングと合致しておりました。

まとめ

前回と2回に渡ってSplunkを使って異常検知を行う4つの手法をご紹介しました。ご紹介した手法以外にも多くの検知方法があります。また評価結果によっては、もっと前処理をしたり、アルゴリズムを変えたり、チューニングをしないといけないかもしれませんが、まずは試してみるのが重要です。

是非この機会にSplunkと機械学習の最高の組み合わせを試してみてください。

----------------------------------------------------
Thanks!
丸山 潤一

Splunk
Posted by

Splunk

世界の様々な企業が、デジタルシステムの安全性と信頼性を維持するためにSplunkを信頼しご利用いただいています。Splunkのソフトウェアソリューションとサービスは、ビジネスの継続に関わる重大な問題を未然に防ぎ、回復力を高め、イノベーションを加速します。Splunkの機能Splunkが選ばれる理由をご覧ください。

TAGS
Show All Tags
Show Less Tags