Splunk で 相関マトリックスを作るには?
はじめに
Splunk で相関マトリックスを作りたい! でも標準コマンドやグラフでは用意されていないですよね(もしあったらすみません)今回は相関マトリックスを作るための2つの手法を見つけたのでご紹介します。
手法1: MLTK + Algoを追加して利用する
こちらは、MLTK だけではアルゴリズムが足りず、追加のAppを入れます。
事前準備環境
- MLTK
- Python for Scientific Computing (for Linux 64-bit) (*)Linuxの場合
- Splunk MLTK Algorithms on GitHub
(*) ちなみに3つ目のAppは Splunk8でも問題なく動作しております。
使い方
MLTKのアルゴリズムとして呼び出すので、fit の後に CorrelationMatrix とします。
| inputlookup diabetes.csv
| fit CorrelationMatrix *
色の付け方は、以下のようにヒートマップを選択します。
ヒートマップとしてはこれで十分かもしれませんが、もっと可視化して分析したいですよね。
手法2: seaborn の相関マトリックスを使う
そんなときに DLTK (DeepLearning Toolkit)を使うと、seabornを使った可視化ダッシュボードが Splunk上でできるというblogを見つけました。
完成したら、以下のようなイメージでダッシュボード上で可視化できます。
ということで早速使い方をみてみましょう。使うためにはちょっとした事前準備と工夫が必要です。
事前準備環境
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容量などに注意!)
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が残っているため存在しない場合があります。その場合は上記の方法で取得ください)
念の為 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]を選択するといいでしょう。
エラーなく、最後までいけば成功です。これで 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
エラーなく、以下のように表示されれば成功です。
4) correlationmatrix の可視化
おまたせしました。ようやく可視化が出来ます。
仕組みとしては、上記の correlationmatrix が裏で seabornを使って可視化したものを imageとして保存しております。それを呼び出してダッシュボードで表示するという仕組みです。サンプルダッシュボードがありますので、そちらを複製して、利用することにします。
DTLKの 「例(Sample)」 - 「基本」 - 「Correlation Matrix and pair plot」 をクリック
必要に応じて、権限を他のAppから参照できるようにしておいてください。
最後にダッシュボード内の SPLとトークンを修正します。
以下にように、「編集」ー「ソース」 から以下の2カ所を修正します。
これで保存すれば、OK!
上級者は、jupyternotebook のコードを編集すれば、他のseabornのオプションイメージも利用できます。
最後に
最初はちょっと面倒そうに見えますが、一度作ってしまうとあとはダッシュボード内の SPLを入れ替えるだけで再利用できます。
またこのようなイメージをダッシュボードに貼る方法も面白いですよね。
コンテナを利用することで、Splunkと計算ノードを分離出来るので、Splunk単体だとCPU/Memory などの制限に引っかかってしまうケースも多いですが、DLTKを使うことで回避することも可能です。
是非、お試しください。
Author And Source
この問題について(Splunk で 相関マトリックスを作るには?), 我々は、より多くの情報をここで見つけました https://qiita.com/maroon/items/56d7b61cd53786f4a8b1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .