グルーピングしたデータごとにヒストグラムを確認する
SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。
機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルのヒストグラムをまとめて確認する方法を紹介します。
データを確認する
今回は organics.sas7bdat を用います。
organics = sess.upload('organics.sas7bdat')
データは以下のようになっています。
organics.casTable.head()
CUSTID | GENDER | DOB | EDATE | AGE | AGEGRP1 | AGEGRP2 | TV_REG | NGROUP | NEIGHBORHOOD | LCDATE | ORGANICS | BILL | REGION | CLASS | ORGYN | AFFL | LTIME | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0000000140 | U | 1921-09-16 | 1998-02-23 | 76.0 | 60-80 | 70-80 | Wales & West | C | 16 | 1994-11-07 | 0.0 | 16000.00 | Midlands | Gold | 0.0 | 10.0 | 4.0 |
1 | 0000000620 | U | 1949-02-12 | 1998-02-23 | 49.0 | 40-60 | 40-50 | Wales & West | D | 35 | 1993-06-04 | 0.0 | 6000.00 | Midlands | Gold | 0.0 | 4.0 | 5.0 |
データをグルーピングする
まずデータをグルーピングします。
organics.casTable.groupby = ['GENDER', 'AGEGRP1']
そしてヒストグラムを取り出します。
result = organics.casTable.histogram(
reqpacks=[{'nicebinning': False, 'nbins': 20}],
inputs=['AFFL']
)
そうするとGENDERとAGEGRP1ごとにデータが分かれます。結果が分かれているのに気づくでしょう。
list(result.keys())
['ByGroupInfo',
'ByGroup1.BinDetails',
'ByGroup2.BinDetails',
'ByGroup3.BinDetails',
'ByGroup4.BinDetails',
'ByGroup5.BinDetails',
'ByGroup6.BinDetails',
'ByGroup7.BinDetails',
'ByGroup8.BinDetails',
'ByGroup9.BinDetails',
'ByGroup10.BinDetails',
'ByGroup11.BinDetails',
'ByGroup12.BinDetails']
情報を確認します。
result['ByGroupInfo']
結果は以下のようになっています(一部)。
GENDER | GENDER_f | AGEGRP1 | AGEGRP1_f | _key_ | |
---|---|---|---|---|---|
0 | F | F | <20 | <20 | F<20 |
1 | F | F | 20-40 | 20-40 | F20-40 |
2 | F | F | 40-60 | 40-60 | F40-60 |
可視化する
ではこのヒストグラムを可視化します。条件に応じて4パターン取り出します。
all_df = {
'GENDER=Female, AGEGRP1=<20': result['ByGroup1.BinDetails'],
'GENDER=Female, AGEGRP1=20-40': result['ByGroup2.BinDetails'],
'GENDER=Female, AGEGRP1=40-60': result['ByGroup3.BinDetails'],
'GENDER=Female, AGEGRP1=60-80': result['ByGroup4.BinDetails'],
}
可視化するためにpandasなどを読み込みます。
import pandas as pd
from bokeh.charts import Bar, Scatter, output_file, show, Area
from bokeh.io import gridplot
データをグラフに追加します。
all_pic = []
for this_title in all_df:
this_pic = Bar(all_df[this_title], 'MidPoint', values='Percent',
color='#1f77b4', agg='mean', title=this_title, legend=None,
xlabel='AFFL', ylabel='Percent'
)
all_pic.append(this_pic)
p = gridplot([all_pic[0], all_pic[1]], [all_pic[2], all_pic[3]])
output_file('grid.html')
show(p)
こうするとグラフが4つ描かれたHTMLファイルが出力されます。
まとめ
ByGroupInfoを見ることでデータ構造が分かります。そして各グルーピングされたデータごとに傾向を見ることで、大筋でのデータ把握ができるようになります。本格的な分析を行う前に行うのがお勧めです。
Author And Source
この問題について(グルーピングしたデータごとにヒストグラムを確認する), 我々は、より多くの情報をここで見つけました https://qiita.com/ViyaDev/items/7d42f7934b7fd85debd7著者帰属:元の著者の情報は、元の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 .