・お題:データを眺めるのに、グラフを一つ一つ作成するのが面倒なので、一気に作成したい。
・データを扱うすごい人は、データを入手した際に、データの特徴を把握するためにいろいろな角度から眺めるらしい。これは探索的データ分析(EDA)と呼ばれ、とても大事なステップらしい。
・グラフ一つを描くのに時間がかかっていては、いつまで経ってもEDAできないので、簡単にEDAできるパッケージがないか調べてみたところ、いくつか見つかった。
・Pandas-profiling、dtale、sweetviz、Autovizなどが人気らしい。全部試してみても良いけれど、とりあえず扱いやすいっぽいPandas-profilingとAutovizを触ってみた(インストールは割愛)。
・とりあえずデータセットを作成。
import pandas as pd
import numpy as np
V=np.random.normal( 0,10,100 )
W=[ np.random.normal( 0,5 ) + i*1.3 for i in V ]
X=[ np.random.normal( 0,10 ) + i*( -0.8 ) for i in V ]
Y=[ abs( i+10)*10 + 1 for i in V ]
Z=np.random.normal(10,10,100 )
df=pd.DataFrame( zip(V, W, X, Y, Z),columns=[ "V","W","X","Y","Z" ] )
・Autovizを試してみる。
from autoviz.AutoViz_Class import AutoViz_Class
%matplotlib inline
autoviz = AutoViz_Class().AutoViz("",dfte=df)#本来はファイルを読み込ませて解析するが、今回はpandasのDataFrameを使ったので、読み込ませるファイル名は空欄で、dfteでデータを指定した。
・たったこれだけのコマンドで、以下のグラフを得た。
①それぞれの変数ペアの散布図
②それぞれの変数ごとの分布に関するグラフ
③バイオリンプロット
④変数同士の相関のヒートマップ
・ぽちぽち自分で作るべきグラフを一気に作成できてしまった。ただし、数値情報はあまりない。
・次に、Pandas-profilingを試してみる。
import pandas_profiling as pdp
pdp.ProfileReport(df)
・たったこれだけのコマンドで、以下の結果を得た。
①データセットの概要
ちなみに、Alertsには「相関高すぎ」などの注意が詰まっている。
②欠損地、ゼロ値などの概略
③基本統計量、ヒストグラム、出現頻度、外れ値(Toggle detailsの中にあった)
④それぞれの変数ペアの散布図
⑤それぞれの変数の相関係数のヒートマップ(Toggle correlation descriptionsの中にcorrelationの解説が入っている)
⑥欠損値
⑦データの頭とお尻(割愛)
簡単にグラフがずらっと描けて楽しいが、大切なのはツールではなく解釈する能力なんだな、と改めて感じた。
おわり