SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。
機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルのサマリーを表示した際の各値の意味を解説します。
今回はステップバイステップでデータをグラフ化する流れを紹介します。
データを取り込む
今回使うのは organics.sas7bdat
です。年齢、性別ごとに健康状態などが入ったデータです。まずこのデータを読み込みます。
organics = sess.upload('organics.sas7bdat')
データを確認します。
organics.casTable.summary()
Column | Min | Max | N | NMiss | Mean | Sum | Std | StdErr | Var | USS | CSS | CV | TValue | ProbT | Skewness | Kurtosis | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | DOB | -15266.00 | 7190.00 | 22223.0 | 0.0 | -5877.324574 | -1.306118e+08 | 4825.522949 | 32.370026 | 2.328567e+07 | 1.285102e+12 | 5.174542e+11 | -82.104075 | -181.566881 | 0.0 | 0.077679 | -0.849240 |
1 | EDATE | 13933.00 | 13933.00 | 22223.0 | 0.0 | 13933.000000 | 3.096331e+08 | 0.000000 | 0.000000 | 0.000000e+00 | 4.314117e+12 | 0.000000e+00 | 0.000000 | NaN | NaN | NaN | NaN |
2 | AGE | 18.00 | 79.00 | 20715.0 | 1508.0 | 53.797152 | 1.114408e+06 | 13.206048 | 0.091755 | 1.743997e+02 | 6.356449e+07 | 3.612516e+06 | 24.547858 | 586.312118 | 0.0 | -0.079830 | -0.843893 |
3 | LCDATE | -21914.00 | 13846.00 | 21942.0 | 281.0 | 11644.613937 | 2.555061e+08 | 2317.765457 | 15.647011 | 5.372037e+06 | 3.093138e+12 | 1.178679e+11 | 19.904185 | 744.206937 | 0.0 | -7.631565 | 98.238337 |
4 | ORGANICS | 0.00 | 3.00 | 22223.0 | 0.0 | 0.294740 | 6.550000e+03 | 0.562831 | 0.003776 | 3.167786e-01 | 8.970000e+03 | 7.039455e+03 | 190.958650 | 78.066014 | 0.0 | 2.021011 | 4.245531 |
5 | BILL | 0.01 | 296313.85 | 22223.0 | 0.0 | 4420.590041 | 9.823877e+07 | 7559.047522 | 50.706745 | 5.713920e+07 | 1.704021e+12 | 1.269747e+12 | 170.996348 | 87.179527 | 0.0 | 8.037186 | 184.871517 |
6 | ORGYN | 0.00 | 1.00 | 22223.0 | 0.0 | 0.247716 | 5.505000e+03 | 0.431696 | 0.002896 | 1.863613e-01 | 5.505000e+03 | 4.141322e+03 | 174.270256 | 85.541739 | 0.0 | 1.168908 | -0.633711 |
7 | AFFL | 0.00 | 34.00 | 21138.0 | 1085.0 | 8.711893 | 1.841520e+05 | 3.421125 | 0.023531 | 1.170409e+01 | 1.851702e+06 | 2.473894e+05 | 39.269588 | 370.233401 | 0.0 | 0.891684 | 2.096860 |
8 | LTIME | 0.00 | 39.00 | 21942.0 | 281.0 | 6.564670 | 1.440420e+05 | 4.657113 | 0.031440 | 2.168870e+01 | 1.421460e+06 | 4.758717e+05 | 70.942063 | 208.801826 | 0.0 | 2.282790 | 8.077622 |
一部のデータを取り出し
表示に利用するデータだけに絞り込みます。
varlist = ['Age', 'BILL', 'ORGYN']
result = organics.casTable.summary(input=varlist)
各データのサマリーを取り出します。
df = result['Summary']
そしてサマリーの中でも必要なデータだけを指定します。今回はMin、MeanそしてMaxの3つです。
df.index = df['Column']
stackedDf = df[['Min', 'Mean', 'Max']].stack()
出力すると次のようになります。
print(stackedDf)
各カラムにおけるMin、Mean、Max値だけが抽出されます。
Column
AGE Min 18.000000
Mean 53.797152
Max 79.000000
BILL Min 0.010000
Mean 4420.590041
Max 296313.850000
ORGYN Min 0.000000
Mean 0.247716
Max 1.000000
dtype: float64
ビジュアル化する
このデータをグラフ化するのに使えるのが bokeh.charts
になります。
from bokeh.charts import Bar, output_file, show
棒グラフの準備をします。
p = Bar(df, 'Column',
values='Mean',
color='#1f77b4',
agg='mean',
title='',
xlabel='',
ylabel='Frequency'
)
そしてファイルを用意して出力します。
output_file('visual1.html')
show(p)
これでグラフが確認できるはずです。
サマリーをグラフ化する際には上記の手順でできるはずです。大量のデータをすべて閲覧するのは大変ですが、トレンドを掴むのであればサマリーを使うのが良いでしょう。