SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。
機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルの複数カラムを指定するグループ化について解説します。
データを取り込む
今回使うのは organics.sas7bdat
です。年齢、性別ごとに健康状態などが入ったデータです。まずこのデータを読み込みます。
organics = sess.upload('organics.sas7bdat')
グループ化するカラムを指定する
まず一つのカラムでグルーピングします。
organics.casTable.groupby = 'NGroup'
グループ化した際の値を確認します。
result = organics.casTable.summary(inputs='Age')
result['ByGroupInfo']
NGROUP | NGROUP_f | key | |
---|---|---|---|
0 | |||
1 | A | A | A |
6 | F | F | F |
7 | U | U | U |
データを閲覧する
では実際のデータを確認します。
result2 = result.concat_bygroups()
result2['Summary'][['N', 'Min', 'Mean', 'Max', 'Std']]
N | Min | Mean | Max | Std | |
---|---|---|---|---|---|
NGROUP | |||||
620.0 | 18.0 | 51.943548 | 79.0 | 13.402615 | |
A | 1725.0 | 19.0 | 57.141449 | 79.0 | 12.670404 |
B | 3863.0 | 18.0 | 57.054103 | 79.0 | 12.526261 |
C | 4228.0 | 18.0 | 53.967360 | 79.0 | 13.124790 |
D | 4107.0 | 19.0 | 52.899440 | 79.0 | 12.772080 |
E | 2431.0 | 21.0 | 53.461950 | 79.0 | 13.376446 |
F | 3691.0 | 19.0 | 50.236521 | 79.0 | 13.375629 |
U | 50.0 | 26.0 | 48.260000 | 77.0 | 15.145296 |
こうやってグルーピングしたデータを確認できます。
複数カラムを指定する
ではここから本番です。複数カラムをグルーピングに指定します。
organics.casTable.groupby = ['NGroup', 'Gender']
result = organics.casTable.summary(inputs='Age')
result3 = result.concat_bygroups()
result3['Summary'][['N', 'Min', 'Mean', 'Max', 'Std']]
そうするとデータも多段階に展開されます。
N | Min | Mean | Max | Std | ||
---|---|---|---|---|---|---|
NGROUP | GENDER | |||||
57.0 | 29.0 | 54.298246 | 78.0 | 12.562650 | ||
F | 365.0 | 24.0 | 50.682192 | 79.0 | 13.316223 | |
M | 155.0 | 23.0 | 53.858065 | 78.0 | 13.177331 | |
U | 43.0 | 18.0 | 52.627907 | 78.0 | 15.104435 | |
A | 228.0 | 27.0 | 58.070175 | 79.0 | 10.859308 | |
F | 892.0 | 19.0 | 56.383408 | 79.0 | 13.528325 | |
M | 452.0 | 24.0 | 57.488938 | 79.0 | 11.934127 | |
U | 153.0 | 21.0 | 59.150327 | 79.0 | 11.843148 | |
B | 451.0 | 20.0 | 56.416851 | 79.0 | 12.255215 | |
F | 2079.0 | 19.0 | 56.823954 | 79.0 | 12.702405 | |
M | 1026.0 | 18.0 | 57.592593 | 79.0 | 12.522748 | |
U | 307.0 | 28.0 | 57.749186 | 79.0 | 11.662981 | |
U | 5.0 | 27.0 | 56.800000 | 76.0 | 18.212633 | |
F | 32.0 | 27.0 | 47.500000 | 77.0 | 16.372676 | |
M | 12.0 | 26.0 | 46.250000 | 57.0 | 10.172378 | |
U | 1.0 | 54.0 | 54.000000 | 54.0 | NaN |
この表示は organics.casTable.groupby
のカラムを指定した順番で並びます。
グルーピングすることでデータの傾向が見えやすくなります。データを取り込んだ際に、まずデータの内容を分析する際に使ってみてください。