0
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 3 years have passed since last update.

Splunk で 相関マトリックスを作るには?

Last updated at Posted at 2020-08-18

はじめに

Splunk で相関マトリックスを作りたい! でも標準コマンドやグラフでは用意されていないですよね(もしあったらすみません)今回は相関マトリックスを作るための2つの手法を見つけたのでご紹介します。

手法1: MLTK + Algoを追加して利用する

こちらは、MLTK だけではアルゴリズムが足りず、追加のAppを入れます。

事前準備環境

(*) ちなみに3つ目のAppは Splunk8でも問題なく動作しております。

使い方

MLTKのアルゴリズムとして呼び出すので、fit の後に CorrelationMatrix とします。

| inputlookup diabetes.csv
| fit CorrelationMatrix *

image.png

色の付け方は、以下のようにヒートマップを選択します。

image.png

ヒートマップとしてはこれで十分かもしれませんが、もっと可視化して分析したいですよね。

手法2: seaborn の相関マトリックスを使う

そんなときに DLTK (DeepLearning Toolkit)を使うと、seabornを使った可視化ダッシュボードが Splunk上でできるというblogを見つけました。

完成したら、以下のようなイメージでダッシュボード上で可視化できます。
image.png

ということで早速使い方をみてみましょう。使うためにはちょっとした事前準備と工夫が必要です。

事前準備環境

DLTKのセットアップの仕方はこちらの記事をご覧ください。セットアップまででOKです。
https://qiita.com/maroon/items/5a8b027631a674d6d8be

DLTKの場合は、計算処理をコンテナ側で実施するため、コンテナを起動し、アルゴリズムとなる correlationmatrix.py を最初に作成しておく必要があります。 でも心配しないでください。すでにコードは用意されているので、コードを一度実行すればアルゴリズムは作成されます。あとは普通にSplunkから SPLを実行すればいいのです。 ただし可視化部分は seabornで作成したpng イメージをダッシュボードで表示するため、すこし工夫が必要です。

今回は、細かい仕組みは省いて、どう利用するかにフォーカスを当ててみたいと思います。

1) コンテナ起動

DLTKの場合、計算処理をコンテナ上で実行するため、起動しておく必要があります。起動は簡単です。
DLTKのContainers というタブに移動すると以下のような画面が表示されます。 DLTK3.2 の場合 Golden Image GPUというのがありますが、こちらが標準的な Docker Imageとして用意されているので、こちらを選択して、Startボタンで起動します。(これだけ)

初回は、このGolden Imageがダウンロードされて、起動するため少し時間がかかりますが、2回目からはすぐに起動できます。
(23GB 近くあるイメージなので、Disk容量などに注意!)

image.png

2) correlatonmatrix アルゴリズム作成

コンテナ起動したら、[JUPTER LAB] というボタンをクリックしてログインしてください。( Pass: Splunk4DeepLearning)

DLTKの場合、アルゴリズムを自分で作成します。ただしすでにコードはいくつか用意されているので、1から作る必要はありません。

correlationmatrix のコードは、githubからダウンロードする必要があります。
https://github.com/splunk/splunk-mltk-container-docker
ダウンロードしたら、その中に /notebook/correlationmatrix.ipynb というファイルがあるので、jupyternotebookにドラック&ドロップします。
( ver 3.2以降の新規インストールであれば最初から入っております。バージョンアップした場合などは古いvolumeが残っているため存在しない場合があります。その場合は上記の方法で取得ください)

image.png

念の為 Stagingから実行しておきます。

Splunk 上で、以下のSPLをコピペして実行してください。( lookupファイルの権限が Privateになっているので、MLTKのサーチで実行してください。もしくはGlobal 権限を与えるか)

| inputlookup diabetes.csv
| fit MLTKContainer mode=stage algo=correlationmatrix plot="matrix,pairplot" response from BMI age blood_pressure diabetes_pedigree glucose_concentration number_pregnant serum_insulin skin_thickness into app:diabetes_correlation

その後、jupyter notebook に戻って、先ほどのcorrelationmatrix を全て実行します。
以下のように、Runから [Run All Cells]を選択するといいでしょう。

image.png

エラーなく、最後までいけば成功です。これで correlationmatrix のコードがコンテナ上に作成されました。

3) Splunk上で correlationmatrix が動作するか確認。

以下のサンプルコードを使って、先ほど作成したアルゴリズムが動作するかみてみましょう。

| inputlookup churn.csv
| table "Day Calls" "Eve Calls" "Night Calls" "Intl Calls" "Churn?"
| fit MLTKContainer algo=correlationmatrix plot="matrix,pairplot" "Churn?" from * into correlation_churn

エラーなく、以下のように表示されれば成功です。

image.png

4) correlationmatrix の可視化

おまたせしました。ようやく可視化が出来ます。

仕組みとしては、上記の correlationmatrix が裏で seabornを使って可視化したものを imageとして保存しております。それを呼び出してダッシュボードで表示するという仕組みです。サンプルダッシュボードがありますので、そちらを複製して、利用することにします。

DTLKの 「例(Sample)」 - 「基本」 - 「Correlation Matrix and pair plot」 をクリック

image.png

ダッシュボードを複製して、適当な名前を作成します。
image.png

image.png

必要に応じて、権限を他のAppから参照できるようにしておいてください。

最後にダッシュボード内の SPLとトークンを修正します。

以下にように、「編集」ー「ソース」 から以下の2カ所を修正します。

image.png

これで保存すれば、OK!

image.png

上級者は、jupyternotebook のコードを編集すれば、他のseabornのオプションイメージも利用できます。

最後に

最初はちょっと面倒そうに見えますが、一度作ってしまうとあとはダッシュボード内の SPLを入れ替えるだけで再利用できます。
またこのようなイメージをダッシュボードに貼る方法も面白いですよね。

コンテナを利用することで、Splunkと計算ノードを分離出来るので、Splunk単体だとCPU/Memory などの制限に引っかかってしまうケースも多いですが、DLTKを使うことで回避することも可能です。

是非、お試しください。

0
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
0
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?