Simulation Tables

ITSTGCN
Author

SEOYEON CHOI

Published

April 27, 2023

Simulation Tables

import

import pandas as pd
data_fivenodes= pd.read_csv('./simulation_results/Real_simulation/fivedones_Simulation.csv')
data_fivenodes['dataset']='fivenodes'
data_chickenpox = pd.read_csv('./simulation_results/Real_simulation/chikenpox_Simulation.csv')
data_chickenpox['dataset'] = 'chickenpox'
data_pedalme = pd.read_csv('./simulation_results/Real_simulation/pedalme_Simulation.csv')
data_wikimath = pd.read_csv('./simulation_results/Real_simulation/wikimath.csv')
data_wikimath_block = pd.read_csv('./simulation_results/Real_simulation/wikimath_block.csv')
data_windmillmedium = pd.read_csv('./simulation_results/Real_simulation/windmillmedium.csv')
data_windmillmedium['dataset']='windmillmedium'
data_windmillsmall = pd.read_csv('./simulation_results/Real_simulation/windmillsmall.csv')
data_windmillsmall['dataset'] = 'windmillsmall'
data_windmillsmall_block = pd.read_csv('./simulation_results/Real_simulation/windmillsmall_block.csv')
data_windmillsmall_block['dataset'] = 'windmillsmall'
data_monte = pd.read_csv('./simulation_results/Real_simulation/monte.csv')
data_monte_block = pd.read_csv('./simulation_results/Real_simulation/monte_block.csv')
data = pd.concat([data_fivenodes,
                 data_chickenpox,
                 data_pedalme,
                 data_wikimath,
                  data_wikimath_block,
                data_windmillmedium,
                 data_windmillsmall,
                  data_windmillsmall_block,
                  data_monte,
                  data_monte_block
                 ],axis=0)
data['RecurrentGCN'] = 'GConvGRU'
data2 = data[['dataset','method','RecurrentGCN','mrate','mtype','lags','nof_filters','inter_method','epoch','mse']]
data2
dataset method RecurrentGCN mrate mtype lags nof_filters inter_method epoch mse
0 fivenodes GNAR GConvGRU 0.700000 rand 2 NaN linear NaN 1.406830
1 fivenodes GNAR GConvGRU 0.750000 rand 2 NaN linear NaN 1.406830
2 fivenodes GNAR GConvGRU 0.800000 rand 2 NaN linear NaN 1.406830
3 fivenodes GNAR GConvGRU 0.850000 rand 2 NaN linear NaN 1.406830
4 fivenodes GNAR GConvGRU 0.700000 rand 2 NaN linear NaN 1.406830
... ... ... ... ... ... ... ... ... ... ...
361 monte GNAR GConvGRU 0.149142 block 8 NaN linear NaN 1.068464
362 monte GNAR GConvGRU 0.149142 block 4 NaN linear NaN 1.061937
363 monte GNAR GConvGRU 0.149142 block 8 NaN linear NaN 1.068464
364 monte GNAR GConvGRU 0.149142 block 4 NaN linear NaN 1.061937
365 monte GNAR GConvGRU 0.149142 block 8 NaN linear NaN 1.068464

8283 rows × 10 columns

data2.to_csv('./simulation_results/Real_simulation/allresults.csv',index=False)
data = pd.read_csv('./simulation_results/Real_simulation/allresults.csv')
data_DCRNN_fivenodes = pd.read_csv('./simulation_results/DCRNN/fivenodes_DVRNN.csv')
data_DCRNN_chickenpox = pd.read_csv('./simulation_results/DCRNN/chickenpox_DCRNN.csv')
data_DCRNN_pedalme = pd.read_csv('./simulation_results/DCRNN/pedalme_DVRNN.csv')
data_DCRNN_wikimath = pd.read_csv('./simulation_results/DCRNN/wikimath_DCRNN.csv')
data_DCRNN_windmillsmall = pd.read_csv('./simulation_results/DCRNN/windmillsmall_DCRNN.csv')

Fivenodes

Baseline

data.query("dataset=='fivenodes' and mtype!='block'")['mrate'].unique()
array([0.7 , 0.75, 0.8 , 0.85, 0.  ])
pd.merge(data.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method','lags'])['mse'].mean().reset_index(),
         data.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method','lags'])['mse'].std().reset_index(),
         on=['method','nof_filters','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
nof_filters method lags mean std
0 12.0 IT-STGCN 2 1.168 0.030
1 12.0 STGCN 2 1.173 0.036
2 16.0 IT-STGCN 2 1.166 0.039
3 16.0 STGCN 2 1.165 0.040
pd.merge(data.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','lags'])['mse'].mean().reset_index(),
         data.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','lags'])['mse'].std().reset_index(),
         on=['nof_filters','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
nof_filters lags mean std
0 12.0 2 1.170 0.033
1 16.0 2 1.165 0.039
pd.merge(data_DCRNN_fivenodes.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','lags'])['mse'].mean().reset_index(),
         data_DCRNN_fivenodes.query("dataset=='fivenodes' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','lags'])['mse'].std().reset_index(),
         on=['nof_filters','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
nof_filters lags mean std
0 16 2 1.247 0.005

Random

data.query("dataset=='fivenodes' and mtype=='rand'and method=='GNAR'")['mse'].unique().round(3)
array([1.407])
pd.merge(data.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].mean().reset_index(),
         data.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].std().reset_index(),
         on=['method','nof_filters','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters==12")
mrate nof_filters method lags mean std
0 0.70 12.0 IT-STGCN 2 1.200 0.070
1 0.70 12.0 STGCN 2 1.213 0.083
4 0.75 12.0 IT-STGCN 2 1.188 0.060
5 0.75 12.0 STGCN 2 1.239 0.102
8 0.80 12.0 IT-STGCN 2 1.221 0.083
9 0.80 12.0 STGCN 2 1.226 0.105
12 0.85 12.0 IT-STGCN 2 1.227 0.085
13 0.85 12.0 STGCN 2 1.291 0.252
pd.merge(data.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].mean().reset_index(),
         data.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].std().reset_index(),
         on=['method','nof_filters','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters!=12")
mrate nof_filters method lags mean std
2 0.70 16.0 IT-STGCN 2 1.201 0.068
3 0.70 16.0 STGCN 2 1.227 0.094
6 0.75 16.0 IT-STGCN 2 1.231 0.110
7 0.75 16.0 STGCN 2 1.201 0.072
10 0.80 16.0 IT-STGCN 2 1.232 0.092
11 0.80 16.0 STGCN 2 1.292 0.148
14 0.85 16.0 IT-STGCN 2 1.286 0.297
15 0.85 16.0 STGCN 2 1.362 0.239
pd.merge(data_DCRNN_fivenodes.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].mean().reset_index(),
         data_DCRNN_fivenodes.query("dataset=='fivenodes' and mtype=='rand'").groupby(['mrate','nof_filters','method','lags'])['mse'].std().reset_index(),
         on=['method','nof_filters','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters!=12 and mrate!=0.3")
mrate nof_filters method lags mean std
2 0.8 16 IT-STGCN 2 1.478 1.245
3 0.8 16 STGCN 2 1.491 0.302

Block

data.query("dataset=='fivenodes' and mtype=='block'and method=='GNAR'")['mse'].unique().round(3)
array([1.407])
data.query("dataset=='fivenodes' and mtype=='block'")
dataset method RecurrentGCN mrate mtype lags nof_filters inter_method epoch mse
600 fivenodes GNAR GConvGRU 0.125 block 2 NaN cubic NaN 1.406830
601 fivenodes GNAR GConvGRU 0.125 block 2 NaN linear NaN 1.406830
602 fivenodes GNAR GConvGRU 0.125 block 2 NaN cubic NaN 1.406830
603 fivenodes GNAR GConvGRU 0.125 block 2 NaN linear NaN 1.406830
604 fivenodes GNAR GConvGRU 0.125 block 2 NaN cubic NaN 1.406830
... ... ... ... ... ... ... ... ... ... ...
967 fivenodes IT-STGCN GConvGRU 0.300 block 2 16.0 linear 150.0 1.135442
968 fivenodes STGCN GConvGRU 0.300 block 2 12.0 linear 150.0 1.203593
969 fivenodes STGCN GConvGRU 0.300 block 2 16.0 linear 150.0 1.220799
970 fivenodes IT-STGCN GConvGRU 0.300 block 2 12.0 linear 150.0 1.111655
971 fivenodes IT-STGCN GConvGRU 0.300 block 2 16.0 linear 150.0 1.197438

372 rows × 10 columns

pd.merge(data.query("dataset=='fivenodes' and mtype=='block'").groupby(['mrate','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='fivenodes' and mtype=='block'").groupby(['mrate','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','nof_filters','mrate']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
mrate nof_filters method mean std
0 0.125 12.0 IT-STGCN 4.308 3.333
1 0.125 12.0 STGCN 6.722 5.755
2 0.125 16.0 IT-STGCN 4.633 3.737
3 0.125 16.0 STGCN 6.858 5.814
4 0.300 12.0 IT-STGCN 1.178 0.032
5 0.300 12.0 STGCN 1.232 0.040
6 0.300 16.0 IT-STGCN 1.163 0.050
7 0.300 16.0 STGCN 1.232 0.053

epoch 별 보기

df1 = pd.read_csv('./simulation_results/fivenodes/fivenodes_STGCN_ITSTGCN_random_epoch50.csv')
df2 = pd.read_csv('./simulation_results/fivenodes/fivenodes_STGCN_ITSTGCN_random_epoch100.csv')
df3 = pd.read_csv('./simulation_results/fivenodes/fivenodes_STGCN_ITSTGCN_random_epoch150.csv')
df4 = pd.read_csv('./simulation_results/fivenodes/fivenodes_STGCN_ITSTGCN_random_epoch200.csv')
df_gnar = pd.read_csv('./simulation_results/fivenodes/fivenodes_GNAR_random.csv')
data_temp = pd.concat([df1,df2,df3,df4,df_gnar],axis=0)

STGCN은 nearest에서 mse가 낮았다.

data_temp.query("method=='STGCN' and mtype=='rand' and mrate==0.8 and lags==2 and inter_method=='linear' and nof_filters==4").\
groupby(['method','epoch','mrate','lags','nof_filters','inter_method'])['mse'].mean().reset_index()['mse'].mean()
1.182556539773941
data_temp.query("method=='STGCN' and mtype=='rand' and mrate==0.8 and lags==2 and inter_method=='linear' and nof_filters==4").\
groupby(['method','epoch','mrate','lags','nof_filters','inter_method'])['mse'].mean().reset_index()['mse'].std()
0.012169932740213692
data_temp.query("method=='IT-STGCN' and mtype=='rand' and mrate==0.8 and lags==2 and inter_method=='linear' and nof_filters==4").\
groupby(['method','epoch','mrate','lags','nof_filters','inter_method'])['mse'].mean().reset_index()['mse'].mean()
1.1747438261906304
data_temp.query("method=='IT-STGCN' and mtype=='rand' and mrate==0.8 and lags==2 and inter_method=='linear' and nof_filters==4").\
groupby(['method','epoch','mrate','lags','nof_filters','inter_method'])['mse'].mean().reset_index()['mse'].std()
0.007602895892378366

ChickenpoxDatasetLoader(lags=4)

Baseline

pd.merge(data.query("dataset=='chickenpox' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method'])['mse'].std().reset_index(),
         on=['method','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters==16")
nof_filters method mean std
0 16.0 IT-STGCN 1.008 0.010
1 16.0 STGCN 1.009 0.008
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype!='rand' and mtype!='block'").groupby(['nof_filters','method'])['mse'].std().reset_index(),
         on=['method','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters==16")
nof_filters method mean std
0 16 IT-STGCN 0.953 0.005
1 16 STGCN 0.953 0.006

Random

data.query("dataset=='chickenpox' and mtype=='rand'and method=='GNAR'")['mse'].unique().round(3)
array([1.427])
pd.merge(data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.3 and nof_filters==16")
mrate inter_method nof_filters method mean std
0 0.3 cubic 16.0 IT-STGCN 1.019 0.011
1 0.3 cubic 16.0 STGCN 1.059 0.013
6 0.3 linear 16.0 IT-STGCN 1.015 0.009
7 0.3 linear 16.0 STGCN 1.040 0.014
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.3 and nof_filters==16")
mrate inter_method nof_filters method mean std
0 0.3 cubic 16 IT-STGCN 0.985 0.008
1 0.3 cubic 16 STGCN 1.053 0.008
2 0.3 linear 16 IT-STGCN 0.983 0.007
3 0.3 linear 16 STGCN 1.028 0.012
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.4 and nof_filters==16")
mrate inter_method nof_filters method mean std
4 0.4 cubic 16 IT-STGCN 0.995 0.009
5 0.4 cubic 16 STGCN 1.069 0.011
6 0.4 linear 16 IT-STGCN 0.994 0.008
7 0.4 linear 16 STGCN 1.038 0.011
pd.merge(data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.4 and nof_filters==16")
mrate inter_method nof_filters method mean std
12 0.4 cubic 16.0 IT-STGCN 1.021 0.009
13 0.4 cubic 16.0 STGCN 1.084 0.025
18 0.4 linear 16.0 IT-STGCN 1.020 0.009
19 0.4 linear 16.0 STGCN 1.051 0.014
pd.merge(data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.5 and nof_filters==16")
mrate inter_method nof_filters method mean std
24 0.5 cubic 16.0 IT-STGCN 1.027 0.012
25 0.5 cubic 16.0 STGCN 1.128 0.042
30 0.5 linear 16.0 IT-STGCN 1.026 0.014
31 0.5 linear 16.0 STGCN 1.071 0.016
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.5 and nof_filters==16")
mrate inter_method nof_filters method mean std
8 0.5 cubic 16 IT-STGCN 1.011 0.007
9 0.5 cubic 16 STGCN 1.080 0.019
10 0.5 linear 16 IT-STGCN 1.008 0.007
11 0.5 linear 16 STGCN 1.055 0.010
pd.merge(data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.8 and nof_filters==16")
mrate inter_method nof_filters method mean std
36 0.8 cubic 16.0 IT-STGCN 1.206 0.117
37 0.8 cubic 16.0 STGCN 1.266 0.152
42 0.8 linear 16.0 IT-STGCN 1.101 0.034
43 0.8 linear 16.0 STGCN 1.166 0.059
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.8 and nof_filters==16")
mrate inter_method nof_filters method mean std
12 0.8 cubic 16 IT-STGCN 1.181 0.142
13 0.8 cubic 16 STGCN 1.417 0.663
14 0.8 linear 16 IT-STGCN 1.058 0.015
15 0.8 linear 16 STGCN 1.102 0.027
pd.merge(data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.9 and nof_filters==16")
mrate inter_method nof_filters method mean std
48 0.9 cubic 16.0 IT-STGCN 1.228 0.199
49 0.9 cubic 16.0 STGCN 1.283 0.222
54 0.9 linear 16.0 IT-STGCN 1.251 0.106
55 0.9 linear 16.0 STGCN 1.265 0.148
pd.merge(data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_chickenpox.query("dataset=='chickenpox' and mtype=='rand'").groupby(['mrate','inter_method','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.9 and nof_filters==16")
mrate inter_method nof_filters method mean std
16 0.9 cubic 16 IT-STGCN 2.372 1.841
17 0.9 cubic 16 STGCN 1.596 0.648
18 0.9 linear 16 IT-STGCN 1.090 0.045
19 0.9 linear 16 STGCN 1.179 0.127

Block

data.query("dataset=='chickenpox' and mtype=='block'and method=='GNAR'")['mse'].unique()
array([1.42749429])
pd.merge(data.query("dataset=='chickenpox' and mtype=='block'").groupby(['inter_method','mrate','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='chickenpox' and mtype=='block'").groupby(['inter_method','mrate','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','inter_method','mrate','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("nof_filters==16")
inter_method mrate nof_filters method mean std
0 cubic 0.288 16.0 IT-STGCN 1.052 0.028
1 cubic 0.288 16.0 STGCN 1.052 0.023
6 linear 0.288 16.0 IT-STGCN 1.008 0.005
7 linear 0.288 16.0 STGCN 1.011 0.008

PedalMeDatasetLoader (lags=4)

Baseline

pd.merge(data.query("dataset=='pedalme' and mtype!='rand' and mtype!='block'").groupby(['lags','nof_filters','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype!='rand' and mtype!='block'").groupby(['lags','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','lags','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==4")
lags nof_filters method mean std
0 4 12.0 IT-STGCN 1.241 0.04
1 4 12.0 STGCN 1.271 0.04
(1.241+1.271)/2
1.256
pd.merge(data_DCRNN_pedalme.query("dataset=='pedalme' and mtype!='rand' and mtype!='block'").groupby(['lags','nof_filters','method'])['mse'].mean().reset_index(),
         data_DCRNN_pedalme.query("dataset=='pedalme' and mtype!='rand' and mtype!='block'").groupby(['lags','nof_filters','method'])['mse'].std().reset_index(),
         on=['method','lags','nof_filters']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
lags nof_filters method mean std
0 4 12 IT-STGCN 1.204 0.020
1 4 12 STGCN 1.203 0.022
(1.204+1.203)/2
1.2035

Random

data.query("dataset=='pedalme' and method=='GNAR' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index().query(" lags==4")
mrate lags inter_method method mse
0 0.3 4 cubic GNAR 1.302679
1 0.3 4 linear GNAR 1.302679
2 0.4 4 cubic GNAR 1.302679
3 0.4 4 linear GNAR 1.302679
4 0.5 4 cubic GNAR 1.302679
5 0.5 4 linear GNAR 1.302679
6 0.6 4 cubic GNAR 1.302679
7 0.6 4 linear GNAR 1.302679
pd.merge(data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.3 and lags==4")
mrate lags inter_method method mean std
0 0.3 4 cubic GNAR 1.303 0.000
1 0.3 4 cubic IT-STGCN 1.314 0.109
2 0.3 4 cubic STGCN 1.363 0.115
3 0.3 4 linear GNAR 1.303 0.000
4 0.3 4 linear IT-STGCN 1.323 0.094
5 0.3 4 linear STGCN 1.380 0.127
pd.merge(data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.3 and  lags==4")
mrate lags inter_method method mean std
0 0.3 4 cubic IT-STGCN 1.223 0.031
1 0.3 4 cubic STGCN 1.248 0.039
2 0.3 4 linear IT-STGCN 1.227 0.026
3 0.3 4 linear STGCN 1.242 0.031
4 0.3 4 nearest IT-STGCN 1.231 0.032
5 0.3 4 nearest STGCN 1.229 0.032
pd.merge(data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.4 and lags==4")
mrate lags inter_method method mean std
10 0.4 4 cubic GNAR 1.303 0.000
11 0.4 4 cubic IT-STGCN 1.331 0.112
12 0.4 4 cubic STGCN 1.342 0.108
13 0.4 4 linear GNAR 1.303 0.000
14 0.4 4 linear IT-STGCN 1.375 0.154
15 0.4 4 linear STGCN 1.397 0.193
pd.merge(data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query(" mrate==0.4 and lags==4")
mrate lags inter_method method mean std
6 0.4 4 cubic IT-STGCN 1.230 0.030
7 0.4 4 cubic STGCN 1.257 0.051
8 0.4 4 linear IT-STGCN 1.231 0.032
9 0.4 4 linear STGCN 1.251 0.040
10 0.4 4 nearest IT-STGCN 1.235 0.031
11 0.4 4 nearest STGCN 1.241 0.033
pd.merge(data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.5 and lags==4")
mrate lags inter_method method mean std
20 0.5 4 cubic GNAR 1.303 0.000
21 0.5 4 cubic IT-STGCN 1.328 0.108
22 0.5 4 cubic STGCN 1.367 0.114
23 0.5 4 linear GNAR 1.303 0.000
24 0.5 4 linear IT-STGCN 1.377 0.138
25 0.5 4 linear STGCN 1.326 0.129
pd.merge(data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query(" mrate==0.5 and lags==4")
mrate lags inter_method method mean std
12 0.5 4 cubic IT-STGCN 1.251 0.034
13 0.5 4 cubic STGCN 1.279 0.095
14 0.5 4 linear IT-STGCN 1.241 0.037
15 0.5 4 linear STGCN 1.268 0.052
16 0.5 4 nearest IT-STGCN 1.245 0.034
17 0.5 4 nearest STGCN 1.256 0.043
pd.merge(data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.6 and lags==4")
mrate lags inter_method method mean std
30 0.6 4 cubic GNAR 1.303 0.000
31 0.6 4 cubic IT-STGCN 1.300 0.063
32 0.6 4 cubic STGCN 1.352 0.106
33 0.6 4 linear GNAR 1.303 0.000
34 0.6 4 linear IT-STGCN 1.416 0.169
35 0.6 4 linear STGCN 1.326 0.106
pd.merge(data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_DCRNN_pedalme.query("dataset=='pedalme' and mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("mrate==0.6 and  lags==4")
mrate lags inter_method method mean std
18 0.6 4 cubic IT-STGCN 1.259 0.052
19 0.6 4 cubic STGCN 1.313 0.193
20 0.6 4 linear IT-STGCN 1.243 0.036
21 0.6 4 linear STGCN 1.280 0.064
22 0.6 4 nearest IT-STGCN 1.254 0.037
23 0.6 4 nearest STGCN 1.271 0.050

Block

pd.merge(data.query("dataset=='pedalme' and mtype=='block'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data.query("dataset=='pedalme' and mtype=='block'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==4")
mrate lags inter_method method mean std
4 0.143 4 cubic GNAR 1.303 0.000
5 0.143 4 cubic IT-STGCN 1.284 0.053
6 0.143 4 cubic STGCN 1.288 0.071
7 0.143 4 linear GNAR 1.303 0.000
14 0.286 4 cubic GNAR 1.303 0.000
15 0.286 4 cubic IT-STGCN 1.304 0.050
16 0.286 4 cubic STGCN 1.377 0.061
17 0.286 4 linear GNAR 1.303 0.000
18 0.286 4 linear IT-STGCN 1.335 0.062
19 0.286 4 linear STGCN 1.350 0.056

W_st

data_pedalme_wst = pd.read_csv('./simulation_results/Real_simulation/pedalme_Simulation_itstgcnsnd.csv')
pd.merge(data_pedalme_wst.query("mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_pedalme_wst.query("mtype=='rand'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==4")
mrate lags inter_method method mean std
0 0.3 4 cubic IT-STGCN 1.353 0.141
1 0.3 4 cubic STGCN 1.360 0.131
2 0.3 4 linear IT-STGCN 1.337 0.122
3 0.3 4 linear STGCN 1.353 0.117
4 0.3 4 nearest IT-STGCN 1.316 0.122
5 0.3 4 nearest STGCN 1.403 0.134
12 0.4 4 cubic IT-STGCN 1.332 0.166
13 0.4 4 cubic STGCN 1.344 0.123
14 0.4 4 linear IT-STGCN 1.355 0.139
15 0.4 4 linear STGCN 1.393 0.168
16 0.4 4 nearest IT-STGCN 1.386 0.128
17 0.4 4 nearest STGCN 1.341 0.129
24 0.5 4 cubic IT-STGCN 1.312 0.152
25 0.5 4 cubic STGCN 1.362 0.129
26 0.5 4 linear IT-STGCN 1.344 0.177
27 0.5 4 linear STGCN 1.335 0.117
28 0.5 4 nearest IT-STGCN 1.335 0.153
29 0.5 4 nearest STGCN 1.350 0.129
36 0.6 4 cubic IT-STGCN 1.346 0.151
37 0.6 4 cubic STGCN 1.398 0.103
38 0.6 4 linear IT-STGCN 1.365 0.177
39 0.6 4 linear STGCN 1.353 0.087
40 0.6 4 nearest IT-STGCN 1.402 0.269
41 0.6 4 nearest STGCN 1.339 0.111
48 0.7 4 cubic IT-STGCN 1.377 0.173
49 0.7 4 cubic STGCN 1.363 0.097
50 0.7 4 linear IT-STGCN 1.355 0.144
51 0.7 4 linear STGCN 1.288 0.063
52 0.7 4 nearest IT-STGCN 1.383 0.157
53 0.7 4 nearest STGCN 1.334 0.124
pd.merge(data_pedalme_wst.query("mtype=='block'").groupby(['mrate','lags','inter_method','method'])['mse'].mean().reset_index(),
         data_pedalme_wst.query("mtype=='block'").groupby(['mrate','lags','inter_method','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags','inter_method']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==4")
mrate lags inter_method method mean std
6 0.286 4 cubic IT-STGCN 1.260 0.063
7 0.286 4 cubic STGCN 1.417 0.065
8 0.286 4 linear IT-STGCN 1.276 0.065
9 0.286 4 linear STGCN 1.288 0.055
10 0.286 4 nearest IT-STGCN 1.275 0.061
11 0.286 4 nearest STGCN 1.312 0.061

WikiMathsDatasetLoader (lags=8)

Baseline

data.query("dataset=='wikimath' and mrate==0").groupby(['lags','nof_filters','method'])['mse'].mean().reset_index().round(3).query("lags==8")
lags nof_filters method mse
4 8 12.0 IT-STGCN 0.771
5 8 12.0 STGCN 0.772
data_DCRNN_wikimath.query("dataset=='wikimath' and mrate==0").groupby(['lags','nof_filters','method'])['mse'].mean().reset_index().round(3).query("lags==8")
lags nof_filters method mse
0 8 12 IT-STGCN 0.778
1 8 12 STGCN 0.759

Random

pd.merge(data.query("dataset=='wikimath' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='wikimath' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==8")
mrate lags method mean std
6 0.3 8 IT-STGCN 0.781 0.012
7 0.3 8 STGCN 0.779 0.013
14 0.5 8 IT-STGCN 0.802 0.041
15 0.5 8 STGCN 0.806 0.020
pd.merge(data_DCRNN_wikimath.query("dataset=='wikimath' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data_DCRNN_wikimath.query("dataset=='wikimath' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3).query("lags==8")
mrate lags method mean std
0 0.3 8 IT-STGCN 0.759 0.021
1 0.3 8 STGCN 0.774 0.030

Block

pd.merge(data.query("dataset=='wikimath' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='wikimath' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'})
mrate lags method mean std
0 0.003841 2 IT-STGCN 0.810475 0.033897
1 0.003841 2 STGCN 0.801502 0.015510
2 0.003841 4 IT-STGCN 0.779852 0.013188
3 0.003841 4 STGCN 0.779816 0.019309

missing values on the same nodes

data_wikimath_st = pd.read_csv('./simulation_results/Real_simulation/wikimath_GSO_st.csv')
pd.merge(data_wikimath_st.groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
        data_wikimath_st.groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
mrate lags method mean std
0 0.123 4 IT-STGCN 0.774 0.008
1 0.123 4 STGCN 0.766 0.010
2 0.738 4 IT-STGCN 0.851 0.029
3 0.738 4 STGCN 0.831 0.031

WindmillOutputSmallDatasetLoader (lags=8)

Baseline

pd.merge(data.query("dataset=='windmillsmall' and mrate==0").groupby(['lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='windmillsmall' and mrate==0").groupby(['lags','method'])['mse'].std().reset_index(),
         on=['method','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
lags method mean std
0 8 GNAR 1.649 0.000
1 8 IT-STGCN 1.006 0.006
2 8 STGCN 1.001 0.003
pd.merge(data_DCRNN_windmillsmall.query("dataset=='windmillsmall' and mrate==0").groupby(['lags','method'])['mse'].mean().reset_index(),
         data_DCRNN_windmillsmall.query("dataset=='windmillsmall' and mrate==0").groupby(['lags','method'])['mse'].std().reset_index(),
         on=['method','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
lags method mean std
0 8 IT-STGCN 1.000 NaN
1 8 STGCN 1.001 NaN

Random

data.query("dataset=='windmillsmall' and mtype=='rand'")
dataset method RecurrentGCN mrate mtype lags nof_filters inter_method epoch mse
7097 windmillsmall STGCN GConvGRU 0.7 rand 8 12.0 linear 50.0 1.436077
7098 windmillsmall IT-STGCN GConvGRU 0.7 rand 8 12.0 linear 50.0 1.290896
7099 windmillsmall STGCN GConvGRU 0.7 rand 8 12.0 linear 50.0 1.410098
7100 windmillsmall IT-STGCN GConvGRU 0.7 rand 8 12.0 linear 50.0 1.176981
7101 windmillsmall STGCN GConvGRU 0.7 rand 8 12.0 linear 50.0 1.447851
... ... ... ... ... ... ... ... ... ... ...
7180 windmillsmall GNAR GConvGRU 0.7 rand 8 NaN linear NaN 1.649230
7181 windmillsmall GNAR GConvGRU 0.7 rand 8 NaN linear NaN 1.649230
7182 windmillsmall GNAR GConvGRU 0.7 rand 8 NaN linear NaN 1.649230
7183 windmillsmall GNAR GConvGRU 0.7 rand 8 NaN linear NaN 1.649230
7184 windmillsmall GNAR GConvGRU 0.7 rand 8 NaN linear NaN 1.649230

88 rows × 10 columns

pd.merge(data.query("dataset=='windmillsmall' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='windmillsmall' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
mrate lags method mean std
0 0.7 8 GNAR 1.649 0.000
1 0.7 8 IT-STGCN 1.178 0.054
2 0.7 8 STGCN 1.410 0.075
pd.merge(data_DCRNN_windmillsmall.query("dataset=='windmillsmall' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data_DCRNN_windmillsmall.query("dataset=='windmillsmall' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
mean mrate lags method std

Block

pd.merge(data.query("dataset=='windmillsmall' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='windmillsmall' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'}).round(3)
mrate lags method mean std
0 0.325 8 GNAR 1.649 0.000
1 0.325 8 IT-STGCN 1.015 0.009
2 0.325 8 STGCN 1.017 0.008

Montevideobus (lags=4)

Baseline

round(data.query("dataset=='monte' and mrate==0")['mse'].mean(),3),round(data_monte.query("mrate==0")['mse'].std(),3)
(0.97, 0.024)

Random

data.query("dataset=='monte' and mtype=='rand'")
dataset method RecurrentGCN mrate mtype lags nof_filters inter_method epoch mse
7307 monte STGCN GConvGRU 0.3 rand 8 12.0 linear 50.0 0.972491
7308 monte IT-STGCN GConvGRU 0.3 rand 8 12.0 linear 50.0 0.974410
7309 monte STGCN GConvGRU 0.3 rand 8 12.0 linear 50.0 0.968628
7310 monte IT-STGCN GConvGRU 0.3 rand 8 12.0 linear 50.0 0.976796
7311 monte STGCN GConvGRU 0.3 rand 8 12.0 linear 50.0 0.973314
... ... ... ... ... ... ... ... ... ... ...
7872 monte IT-STGCN GConvGRU 0.9 rand 8 12.0 linear 50.0 1.030140
7873 monte STGCN GConvGRU 0.9 rand 8 12.0 linear 50.0 1.040731
7874 monte IT-STGCN GConvGRU 0.9 rand 8 12.0 linear 50.0 1.041819
7875 monte STGCN GConvGRU 0.9 rand 8 12.0 linear 50.0 1.023531
7876 monte IT-STGCN GConvGRU 0.9 rand 8 12.0 linear 50.0 1.032515

504 rows × 10 columns

pd.merge(data.query("dataset=='monte' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='monte' and mtype=='rand'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'})
mrate lags method mean std
0 0.3 4 GNAR 1.061937 0.000000
1 0.3 4 IT-STGCN 0.971925 0.001871
2 0.3 4 STGCN 0.965885 0.002552
3 0.3 8 GNAR 1.068464 0.000000
4 0.3 8 IT-STGCN 0.974867 0.003233
5 0.3 8 STGCN 0.972051 0.002383
6 0.4 4 GNAR 1.061937 0.000000
7 0.4 4 IT-STGCN 0.976348 0.001374
8 0.4 4 STGCN 0.967480 0.002974
9 0.4 8 GNAR 1.068464 0.000000
10 0.4 8 IT-STGCN 0.978809 0.002110
11 0.4 8 STGCN 0.973098 0.002613
12 0.8 4 GNAR 1.061937 0.000000
13 0.8 4 IT-STGCN 1.006583 0.003297
14 0.8 4 STGCN 0.999715 0.006909
15 0.8 8 GNAR 1.068464 0.000000
16 0.8 8 IT-STGCN 1.004450 0.002953
17 0.8 8 STGCN 1.005238 0.005777
18 0.9 4 GNAR 1.061937 0.000000
19 0.9 4 IT-STGCN 1.034162 0.005611
20 0.9 4 STGCN 1.034995 0.006551
21 0.9 8 GNAR 1.068464 0.000000
22 0.9 8 IT-STGCN 1.030283 0.007979
23 0.9 8 STGCN 1.031538 0.009285

Block

pd.merge(data.query("dataset=='monte' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].mean().reset_index(),
         data.query("dataset=='monte' and mtype=='block'").groupby(['mrate','lags','method'])['mse'].std().reset_index(),
         on=['method','mrate','lags']).rename(columns={'mse_x':'mean','mse_y':'std'})
mrate lags method mean std
0 0.149142 4 GNAR 1.061937 0.000000
1 0.149142 4 IT-STGCN 0.963990 0.002194
2 0.149142 4 STGCN 0.965297 0.001611
3 0.149142 8 GNAR 1.068464 0.000000
4 0.149142 8 IT-STGCN 0.971647 0.002860
5 0.149142 8 STGCN 0.971700 0.001672