7. Benchmark

7.1. Datasets

Application Bike-sharing Bike-sharing Bike-sharing Ride-sharing Ride-sharing Metro Metro EV Traffic Speed Traffic Speed
City New York City Chicago DC Xi'an Chengdu Chongqing Shanghai Beijing METR-LA PEMS-BAY
Time span 2013.03-2017.09 2013.07-2017.09 2013.07-2017.09 2016.10-2016.11 2016.10-2016.11 2016.08-2017.07 2016.07-2016.09 2018.03-2018.05 2012.03-2012.06 2017.01-2017.07
Number of riding records 49,100,694 13,130,969 13,763,675 5,922,961 8,439,537 409,277,117 333,149,034 1,272,961 34,272 52,128
Number of stations 820 585 532 256 256 113 288 629 207 325

Following shows the map-visualization of stations in NYC, Chicago, DC, Xian and Chengdu.

Following shows the map-visualization of stations in Chongqing, Shanghai and Beijing, METR-LA and PEMS-BAY.

7.2. Results

We conducted experiments on the following datasets at the granularity of 15 minutes, 30 minutes, and 60 minutes respectively. More details and conclusions can be found in the this paper. IEEE Xplore, arXiv

7.2.1. 15-minute prediction tasks

The best two results are highlighted in bold, and the top one result is marked with `*'. (TC: Temporal Closeness; TM: Multi-Temporal Factors; SP: Spatial Proximity; SM: Multi-Spatial Factors; SD: Data-driven Spatial Knowledge Extraction

NYC Chicago DC Xi'an Chengdu Shanghai Chongqing METR-LA PEMS-BAY
HM (TC) 1.903 1.756 1.655 3.155 4.050 93.81 76.67 7.150 2.967
ARIMA (TC) 1.874 1.784 1.689 3.088 3.948 83.54 67.11 7.028 2.869
LSTM (TC) 1.989 1.802 1.678 3.051 3.888 80.40 55.37 6.380 2.690
HM (TM) 1.892 1.668 1.555 2.828 3.347 49.75 45.26 8.934 3.690
XGBoost (TM) 1.712 1.672 1.559 2.799 3.430 47.89 35.70 6.443 2.623
GBRT (TM) 1.708 1.667 1.552 2.775 3.363 44.55 33.29 6.371 2.645
TMeta-LSTM-GAL (TM) 1.818 1.623 1.540 2.917 3.286 45.88 33.34 6.156 2.544
DCRNN (TC+SP) 1.712 1.718 1.594 2.889 3.743 56.00 37.07 6.440 5.322
STGCN (TC+SP) 1.738 1.806 1.630 2.789 3.453 47.40 35.19 6.236 2.493
GMAN (TC+SP) 1.632* 1.529 1.355* 2.769 3.520 49.21 36.66 6.214 3.484
Graph-WaveNet (TC+SP+SD) 1.644 1.460* 1.357 2.764 3.442 47.84 35.04 5.270* 2.780
ST-ResNet (TM+SP) --- --- --- 2.686 3.314 --- --- --- ---
ST-MGCN (TM+SM) 1.687 1.646 1.545 2.714 3.293 46.54 32.72 6.645 2.426*
AGCRN-CDW (TM+SD) 1.836 1.883 1.745 2.722 3.296 77.06 46.95 6.709 2.453
STMeta-GCL-GAL (TM+SM) 1.659 1.607 1.527 2.653 3.244 41.67 31.39* 5.644 2.433
STMeta-GCL-CON (TM+SM) 1.673 1.629 1.512 2.637* 3.241* 43.83 38.21 5.800 2.449
STMeta-DCG-GAL (TM+SM) 1.654 1.609 1.517 2.648 3.254 40.94* 36.90 5.788 2.446

7.2.2. Results on 30-minute prediction tasks

The best two results are highlighted in bold, and the top one result is marked with `*'. (TC: Temporal Closeness; TM: Multi-Temporal Factors; SP: Spatial Proximity; SM: Multi-Spatial Factors; SD: Data-driven Spatial Knowledge Extraction

NYC Chicago DC Xi'an Chengdu Shanghai Chongqing Beijing METR-LA PEMS-BAY
HM (TC) 3.206 2.458 2.304 5.280 6.969 269.16 221.39 0.768 9.471 4.155
ARIMA (TC) 3.178 2.428 2.228 5.035 6.618 212.01 180.53 0.755 9.230 3.936
LSTM (TC) 3.018 2.493 2.212 4.950 6.444 195.60 104.61 0.755 7.866 3.683
HM (TM) 2.686 2.230 1.956 4.239 4.851 108.59 74.55 0.864 9.560 3.965
XGBoost (TM) 2.704 2.376 1.956 4.172 4.915 81.82 69.50 0.686 8.298 3.253
GBRT (TM) 2.682 2.355 1.928 4.135 4.873 83.94 72.99 0.689 8.269 3.370
TMeta-LSTM-GAL (TM) 2.511 2.133* 1.927 3.847 4.678 85.19 53.18 0.686 7.436 3.231
DCRNN (TC+SP) 2.618 2.246 2.118 4.529 6.258 116.15 65.72 0.757 8.562 6.198
STGCN (TC+SP) 2.841 2.482 2.067 3.992 5.051 91.29 58.34 0.694 7.871 3.136
GMAN (TC+SP) 2.792 2.336 1.836* 4.026 5.293 97.58 51.37 0.764 7.276 3.688
Graph-WaveNet (TC+SP+SD) 2.666 2.158 1.874 3.986 5.097 92.88 52.52 0.719 6.809* 3.589
ST-ResNet (TM+SP) --- --- --- 3.903 4.673 --- --- --- --- ---
ST-MGCN (TM+SM) 2.513 2.177 1.903 3.886 4.732 88.76 50.96 0.691 8.079 3.042
AGCRN-CDW (TM+SD) 2.830 2.565 2.074 3.958 4.753 238.99 131.55 0.688 8.575 3.022*
STMeta-GCL-GAL (TM+SM) 2.410* 2.170 1.856 3.808 4.650 75.36* 49.47 0.670 7.156 3.116
STMeta-GCL-CON (TM+SM) 2.411 2.133* 1.859 3.772* 4.613* 80.69 50.01 0.667* 6.889* 3.204
STMeta-DCG-GAL (TM+SM) 2.411 2.182 1.852 3.833 4.635 77.49 48.96* 0.670 7.184 3.187

7.2.3. Results on 60-minute prediction tasks

The best two results are highlighted in bold, and the top one result is marked with `*'. (TC: Temporal Closeness; TM: Multi-Temporal Factors; SP: Spatial Proximity; SM: Multi-Spatial Factors; SD: Data-driven Spatial Knowledge Extraction

NYC Chicago DC Xi'an Chengdu Shanghai Chongqing Beijing METR-LA PEMS-BAY
HM (TC) 5.814 4.143 3.485 10.136 14.145 824.94 673.55 1.178 12.303 5.779
ARIMA (TC) 5.289 3.744 3.183 9.475 13.259 676.79 578.19 0.982 11.739 5.670
LSTM (TC) 5.167 3.721 3.234 9.830 13.483 506.07 322.81 0.999 10.083 4.777
HM (TM) 3.992 3.104 2.632 6.186 7.512 172.55 119.86 1.016 10.727 4.018
XGBoost (TM) 4.102 3.003 2.643 6.733 7.592 160.38 117.05 0.834 10.299 3.703
GBRT (TM) 4.039 2.984 2.611 6.446 7.511 154.29 113.92 0.828 10.013 3.704
TMeta-LSTM-GAL (TM) 3.739 2.840 2.557 5.843 6.949 163.31 102.86 0.840 8.670* 3.616
DCRNN (TC+SP) 4.187 3.081 3.016 8.203 11.444 340.25 122.31 0.989 11.121 6.920
STGCN (TC+SP) 3.895 2.989 2.597 6.150 7.710 187.98 106.16 0.859 10.688 3.472
GMAN (TC+SP) 4.251 2.875 2.530 7.099 13.351 193.39 117.52 0.949 10.012 3.846
Graph-WaveNet (TC+SP+SD) 3.863 2.812 2.403* 6.541 8.162 186.82 102.75 0.930 9.463 4.135
ST-ResNet (TM+SP) --- --- --- 6.075 7.155 --- --- --- --- ---
ST-MGCN (TM+SM) 3.723 2.904 2.518 5.878 7.067 159.52 104.87 0.827 10.798 3.486
AGCRN-CDW (TM+SD) 3.795 2.935 2.580 8.835 10.275 658.12 287.41 0.844 10.728 3.381*
STMeta-GCL-GAL (TM+SM) 3.518 2.695 2.405 5.871 6.858* 153.17 97.87 0.831 8.834 3.514
STMeta-GCL-CON (TM+SM) 3.507* 2.739 2.404 5.829* 6.873 149.05 106.41 0.807 9.147 3.552
STMeta-DCG-GAL (TM+SM) 3.521 2.652* 2.423 5.908 6.904 143.18* 94.78* 0.803* 8.993 3.500

7.3. Implement Details

7.3.1. Search Space

We use nni toolkit to search the best parameters of HM, XGBoost and GBRT model. Search space are following.

Model Search Space
HM CT: 0~6, PT: 0~7, TT: 0~4
ARIMA CT:168,p:3, d:0, q:0
XGBoost CT: 0~12, PT: 0~14, TT: 0~4, estimater: 10~200, depth: 2~10
GBRT CT: 0~12, PT: 0~14, TT: 0~4, estimater: 10~200, depth: 2~10

7.3.2. Bike-sharing

  • HM & XGBoost & GBRT
15 minutes NYC Chicago DC
HM 3-1-2 5-0-4 3-7-4
XGBoost 8-14-4-32-2 11-13-4-28-2 4-14-4-27-2
GBRT 7-13-4-144-1 7-15-4-101-2 8-11-5-101-2
30 minutes NYC Chicago DC
HM 2-1-2 3-2-1 3-1-4
XGBoost 12-8-1-36-3 7-5-2-24-2 12-13-4-27-2
GBRT 12-10-0-72-4 9-13-2-91-2 13-15-5-140-1
60 minutes NYC Chicago DC
HM 1-1-3 1-1-1 2-1-3
XGBoost 13-7-0-103-3 11-8-0-35-4 11-9-5-28-3
GBRT 12-6-1-58-5 11-8-1-92-5 11-8-5-54-3
  • ST_MGCN Run Code & Setting.

  • DCRNN Run Code & Setting.

  • LSTM & TMeta-LSTM-GAL & STMeta-V1 & STMeta-V2 & STMeta-V3

    These five models can be run by specifying data files and model files on STMeta_Obj.py.

    Data Files: bike_nyc.data.yml , bike_chicago.data.yml, bike_dc.data.yml

    Model Files: STMeta_v0.model.yml, STMeta_v1.model.yml., STMeta_v2.model.yml., STMeta_v3.model.yml.

    • LSTM
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml'
              ' -p data_range:0.25,train_data_length:91,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml'
              ' -p data_range:0.5,train_data_length:183,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml'
              ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml'
              ' -p data_range:0.25,train_data_length:91,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml'
              ' -p data_range:0.5,train_data_length:183,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml'
              ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml'
              ' -p data_range:0.25,train_data_length:91,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml'
              ' -p data_range:0.5,train_data_length:183,graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml'
              ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
    
    • TMeta-LSTM-GAL
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml -p data_range:0.25,train_data_length:91,graph:Distance,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml -p data_range:0.5,train_data_length:183,graph:Distance,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_nyc.data.yml -p graph:Distance,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml -p data_range:0.25,train_data_length:91,graph:Distance,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml -p data_range:0.5,train_data_length:183,graph:Distance,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_chicago.data.yml -p graph:Distance,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml -p data_range:0.25,train_data_length:91,graph:Distance,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml -p data_range:0.5,train_data_length:183,graph:Distance,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d bike_dc.data.yml -p graph:Distance,MergeIndex:12')
    
    • STMeta-V1
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_nyc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_chicago.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_dc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_dc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d bike_dc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    • STMeta-V2
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_nyc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_chicago.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_dc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_dc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d bike_dc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    • STMeta-V3
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_nyc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_nyc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_chicago.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_chicago.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_dc.data.yml '
              '-p data_range:0.25,train_data_length:91,graph:Distance-Correlation-Interaction,MergeIndex:3')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_dc.data.yml '
              '-p data_range:0.5,train_data_length:183,graph:Distance-Correlation-Interaction,MergeIndex:6')
    os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d bike_dc.data.yml '
              '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
    

7.3.3. Ride-sharing

  • HM & XGBoost & GBRT
15 minutes Xi'an Chengdu
HM 5-0-4 2-7-4
XGBoost 7-14-0-10-4 12-14-1-27-3
GBRT 11-2-2-45-3 13-15-5-39-3
30 minutes Xi'an Chengdu
HM 2-0-2 1-7-4
XGBoost 9-0-2-25-3 9-14-3-16-3
GBRT 9-0-2-80-3 10-10-5-34-3
60 minutes Xi'an Chengdu
HM 1-1-2 0-7-4
XGBoost 12-0-2-10-5 9-6-2-14-3
GBRT 9-0-2-50-2 9-12-2-50-5
  • ST-ResNet
ST-ResNet Search Space
residual_units:2~6, conv_filter:[32, 64, 128], kernal_size:3~5,
lr:[0.0001, 0.00002, 0.00004, 0.00008, 0.00001], batch_size:[32, 64, 128, 256]

The best parameters found are following.

args = {
  'dataset': 'DiDi',
  'city': 'Chengdu',
  'num_residual_unit': 4,
  'conv_filters': 64,
  'kernel_size': 3,
  'lr': 1e-5,
  'batch_size': 32

We can modify city parameter to Chengdu or Xian in ST_ResNet.py , and then run it.

 python ST_ResNet.py 
  • ST_MGCN Run Code & Setting.

  • DCRNN Run Code & Setting.

  • LSTM & TMeta-LSTM-GAL & STMeta-V1 & STMeta-V2 & STMeta-V3

    These five models can be run by specifying data files and model files on STMeta_Obj.py.

    Data Files: didi_xian.data.yml , didi_chengdu.data.yml.

    Model Files: STMeta_v0.model.yml, STMeta_v1.model.yml., STMeta_v2.model.yml., STMeta_v3.model.yml.

    • LSTM

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml'
              ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml'
              ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
    • TMeta-LSTM-GAL

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_xian.data.yml -p graph:Distance,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d didi_chengdu.data.yml -p graph:Distance,MergeIndex:12')
      
    • STMeta-V1

      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      
    • STMeta-V2

      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      
    • STMeta-V3

      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_xian.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d didi_chengdu.data.yml '
                '-p graph:Distance-Correlation-Interaction,MergeIndex:12')
      

7.3.4. Metro Passenger

  • HM & XGBoost & GBRT
15 minutes Chongqing Shanghai
HM 2-1-4 1-0-4
XGBoost 12-6-4-51-8 11-10-4-31-7
GBRT 12-14-1-182-7 12-7-1-148-5
30 minutes Chongqing Shanghai
HM 1-0-4 1-1-3
XGBoost 11-5-0-45-8 12-6-1-206-3
GBRT 10-3-0-107-8 7-4-1-58-7
60 minutes Chongqing Shanghai
HM 0-1-4 0-0-4
XGBoost 9-14-2-200-5 3-7-0-50-5
GBRT 12-10-4-200-5 9-5-1-66-6
  • ST_MGCN Run Code & Setting.

  • DCRNN Run Code & Setting.

  • LSTM & TMeta-LSTM-GAL & STMeta-V1 & STMeta-V2 & STMeta-V3

    These five models can be run by specifying data files and model files on STMeta_Obj.py.

    Data Files: metro_chongqing.data.yml , metro_shanghai.data.yml.

    Model Files: STMeta_v0.model.yml, STMeta_v1.model.yml., STMeta_v2.model.yml., STMeta_v3.model.yml.

    • LSTM

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
    • TMeta-LSTM-GAL

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_chongqing.data.yml -p graph:Distance,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metro_shanghai.data.yml -p graph:Distance,MergeIndex:12')
      
    • STMeta-V1

      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:12')
      
    • STMeta-V2

      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:12')
      
    • STMeta-V3

      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_chongqing.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_chongqing.data.yml '
              '-p graph:Distance-Correlation-Line,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml -d metro_shanghai.data.yml '
                '-p graph:Distance-Correlation-Line,MergeIndex:12')
      

7.3.5. Electric Vehicle

  • HM & XGBoost & GBRT
Beijing 30 minutes 60 minutes
HM 2-0-0 2-0-2
XGBoost 6-6-1-19-2 12-7-0-20-2
GBRT 13-3-2-47-3 12-10-0-100-2
  • ST_MGCN Run Code & Setting.

  • DCRNN Run Code & Setting.

  • LSTM & TMeta-LSTM-GAL & STMeta-V1 & STMeta-V2 & STMeta-V3

    These five models can be run by specifying data files and model files on STMeta_Obj.py.

    Data Files: chargestation_beijing.data.yml.

    Model Files: STMeta_v0.model.yml, STMeta_v1.model.yml., STMeta_v2.model.yml., STMeta_v3.model.yml.

    • LSTM

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d chargestation_beijing.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:1')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d chargestation_beijing.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:2')
      
    • TMeta-LSTM-GAL

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance,MergeIndex:1')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance,MergeIndex:2')
      
    • STMeta-V1

      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:1')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
              ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:2')
      
    • STMeta-V2

      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:1')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
              ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:2')
      
    • STMeta-V3

      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:1')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d chargestation_beijing.data.yml -p graph:Distance-Correlation,MergeIndex:2')
      

7.3.6. Traffic Speed

  • HM & XGBoost & GBRT
15 minutes METR-LA PEMS-BAY
HM 2-0-4 1-0-1
XGBoost 11-1-2-25-3 12-4-2-21-4
GBRT 11-8-2-29-4 10-6-1-65-6
30 minutes METR-LA PEMS-BAY
HM 2-0-4 1-0-1
XGBoost 6-6-0-25-3 12-13-2-27-3
GBRT 10-0-0-27-3 12-6-2-90-7
60 minutes METR-LA PEMS-BAY
HM 2-1-4 1-1-4
XGBoost 2-2-0-25-3 12-6-2-19-3
GBRT 4-5-1-19-4 12-7-2-59-5
  • METR-LA and PEMS-BAY ST_MGCN Run Code & Setting.

  • METR-LA and PEMS-BAY DCRNN Run Code & Setting.

  • LSTM & TMeta-LSTM-GAL & STMeta-V1 & STMeta-V2 & STMeta-V3

    These five models can be run by specifying data files and model files on STMeta_Obj.py.

    Data Files: metr_la.data.yml , pems_bay.data.yml.

    Model Files: STMeta_v0.model.yml, STMeta_v1.model.yml., STMeta_v2.model.yml., STMeta_v3.model.yml.

    • LSTM

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metr_la.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metr_la.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d metr_la.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d pems_bay.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d pems_bay.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml -d pems_bay.data.yml'
                ' -p graph:Distance,period_len:0,trend_len:0,mark:LSTMC,MergeIndex:12')
      
    • TMeta-LSTM-GAL

      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d metr_la.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d metr_la.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d metr_la.data.yml -p graph:Distance,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v0.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance,MergeIndex:12')
      
    • STMeta-V1

      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v1.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:12')
      
    • STMeta-V2

      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v2.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:12')
      
    • STMeta-V3

      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d metr_la.data.yml -p graph:Distance-Correlation,MergeIndex:12')
      
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:3')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:6')
      os.system('python STMeta_Obj.py -m STMeta_v3.model.yml'
                ' -d pems_bay.data.yml -p graph:Distance-Correlation,MergeIndex:12')