Posted at

SAS Viyaのデータをグラフ化して保存する

SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。

機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルオブジェクト(Python版)のサマリーデータをグラフ化し、さらにHTMLとして保存します。


テーブルの作り方

テーブルはCSV、HTML、他のデータベースなどから作れます。

out = sess.upload('Jupyter_Saved_Work/Data/iris.csv')

ファイルをアップロードした後、casTableとして取得します。

tbl = out.casTable


テーブルのサマリー

サマリーは summary メソッドで出力します。

tbl.summary()


対象となるデータを絞る

今回は SepalLength と SepalWidth のデータだけをターゲットにします。

df = tbl.summary(inputs=['SepalLength', 'SepalWidth'])

Column
Min
Max
N
NMiss
Mean
Sum
Std
StdErr
Var
USS
CSS
CV
TValue
ProbT
Skewness
Kurtosis

0
SepalLength
4.3
7.9
150.0
0.0
5.843333
876.5
0.828066
0.067611
0.685694
5223.85
102.168333
14.171126
86.425375
3.331256e-129
0.314911

1
SepalWidth
2.0
4.4
150.0
0.0
3.054000
458.1
0.433594
0.035403
0.188004
1427.05
28.012600
14.197587
86.264297
4.374977e-129
0.334053


データを可視化する

データを可視化する場合にはbokehを使います。

from bokeh.charts import Bar, show, output_file

対象データのカラムデータだけを取り出します。

df = tbl.summary(inputs=['SepalLength', 'SepalWidth'])['Summary']

df.columns

以下のような出力が確認できるでしょう。

Index(['Column', 'Min', 'Max', 'N', 'NMiss', 'Mean', 'Sum', 'Std', 'StdErr',

'Var', 'USS', 'CSS', 'CV', 'TValue', 'ProbT', 'Skewness', 'Kurtosis'],
dtype='object')


HTML出力

HTML出力は output_file を使います。

output_file('visual2.html')

そしてさらにグラフの設定と出力を行います。

show(Bar(df, 'Column', values='Max', color='#0000bb'))

これでHTMLファイルが出力されます。

Screenshot_ 2018-12-18 11.22.25.png

Jupyter Notebook上ではHTMLファイルはソースがそのまま見えてしまうのでダウンロードして確認します。

Screenshot_ 2018-12-18 11.14.19.png


レポートなどでグラフ化、再利用する機会は多いかと思います。output_fileやshowを使って手軽に可視化を行ってください。

SAS for Developers | SAS