Python
SAS
機械学習

casTableの複数カラムを使ったグループ化

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']]

そうするとデータも多段階に展開されます。

Descriptive Statistics for ORGANICS




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 のカラムを指定した順番で並びます。


グルーピングすることでデータの傾向が見えやすくなります。データを取り込んだ際に、まずデータの内容を分析する際に使ってみてください。