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