| Literature DB >> 35273236 |
Yusuf Essam1, Yuk Feng Huang2, Jing Lin Ng3, Ahmed H Birima4, Ali Najah Ahmed5, Ahmed El-Shafie6.
Abstract
Floods and droughts are environmental phenomena that occur in Peninsular Malaysia due to extreme values of streamflow (SF). Due to this, the study of SF prediction is highly significant for the purpose of municipal and environmental damage mitigation. In the present study, machine learning (ML) models based on the support vector machine (SVM), artificial neural network (ANN), and long short-term memory (LSTM), are tested and developed to predict SF for 11 different rivers throughout Peninsular Malaysia. SF data sets for the rivers were collected from the Malaysian Department of Irrigation and Drainage. The main objective of the present study is to propose a universal model that is most capable of predicting SFs for rivers within Peninsular Malaysia. Based on the findings, the ANN3 model which was developed using the ANN algorithm and input scenario 3 (inputs consisting of previous 3 days SF) is deduced as the best overall ML model for SF prediction as it outperformed all the other models in 4 out of 11 of the tested data sets; and obtained among the highest average RMs with a score of 3.27, hence indicating that the model is very adaptable and reliable in accurately predicting SF based on different data sets and river case studies. Therefore, the ANN3 model is proposed as a universal model for SF prediction within Peninsular Malaysia.Entities:
Mesh:
Year: 2022 PMID: 35273236 PMCID: PMC8913629 DOI: 10.1038/s41598-022-07693-4
Source DB: PubMed Journal: Sci Rep ISSN: 2045-2322 Impact factor: 4.379
Information on selected rivers’ data for each state.
| State | River | SF station no. | Latitude | Longitude | Data duration |
|---|---|---|---|---|---|
| Johor | Sungai Johor | 1,737,451 | 01°46′50″N | 103°44′45″E | 1978 to 1998 |
| Kedah | Sungai Muda | 5,605,410 | 05°36′35″N | 100°37′35″E | 1976 to 2009 |
| Kelantan | Sungai Kelantan | 5,721,442 | 05°45′45″N | 102°09′00″E | 1980 to 1997 |
| Melaka | Sungai Melaka | 2,322,413 | 02°20′35″N | 102°15′10″E | 1979 to 2004 |
| Negeri Sembilan | Sungai Kepis | 2,723,401 | 02°42′20″N | 102°21′20″E | 1980 to 1995 |
| Pahang | Sungai Pahang | 3,527,410 | 03°30′45″N | 102°45′30″E | 1988 to 2009 |
| Perak | Sungai Perak | 4,809,443 | 04°49′10″N | 100°57′55″E | 1977 to 1995 |
| Perlis | Sungai Arau | 6,503,401 | 06°30′10″N | 100°21′05″E | 1986 to 1995 |
| Selangor | Sungai Selangor | 3,414,421 | 03°24′10″N | 101°26′35″E | 1976 to 2001 |
| Terengganu | Sungai Dungun | 4,832,441 | 04°50′35″N | 103°12′15″E | 1977 to 1996 |
| F.T. of Kuala Lumpur | Sungai Klang | 3,116,430 | 03°08′20″N | 101°41′50″E | 2010 |
Figure 1The SF prediction model development process employed.
Statistical analysis of SF data for the 11 selected rivers.
| River data set | Mean (m3/s) | Median (m3/s) | Mode (m3/s) | Std. dev. (m3/s) | Min. (m3/s) | Max. (m3/s) | Count |
|---|---|---|---|---|---|---|---|
| Sungai Johor, Johor | 40.0 | 28.7 | 15.9 | 43.4 | 0.5 | 709.7 | 7670 |
| Sungai Muda, Kedah | 87.1 | 58.0 | 26.0 | 88.3 | 3.0 | 1160.0 | 12,419 |
| Sungai Kelantan, Kelantan | 495.7 | 364.2 | 509.3 | 587.1 | 81.7 | 9775.1 | 6575 |
| Sungai Melaka, Melaka | 5.8 | 3.3 | 1.4 | 7.8 | 0.0 | 119.9 | 9497 |
| Sungai Kepis, Negeri Sembilan | 0.5 | 0.2 | 0.1 | 1.7 | 0.0 | 65.3 | 5844 |
| Sungai Pahang, Pahang | 683.5 | 520.6 | 497.3 | 540.5 | 133.0 | 6285.3 | 8036 |
| Sungai Perak, Perak | 219.6 | 212.0 | 250.0 | 109.7 | 19.0 | 988.0 | 6939 |
| Sungai Arau, Perlis | 0.7 | 0.0 | 0.0 | 1.6 | 0.0 | 23.0 | 3652 |
| Sungai Selangor, Selangor | 53.9 | 44.0 | 34.7 | 36.7 | 2.3 | 313.9 | 9497 |
| Sungai Dungun, Terengganu | 124.5 | 78.2 | 50.0 | 185.1 | 9.4 | 3178.8 | 7305 |
| Sungai Klang, F.T. of Kuala Lumpur | 0.5 | 19.7 | 20.8 | 9.6 | 10.3 | 105.6 | 365 |
Figure 2Partial autocorrelogram for SF for all data sets.
Pearson’s correlation coefficient matrix for data sets of each selected river.
| Pearson correlations | SF(t) | SF(t − 1) | SF(t − 2) | SF(t − 3) |
|---|---|---|---|---|
| SF(t) | 1 | 0.9573 | 0.8632 | 0.7593 |
| SF(t − 1) | 1 | 0.9573 | 0.8632 | |
| SF(t − 2) | 1 | 0.9573 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9263 | 0.8143 | 0.7371 |
| SF(t − 1) | 1 | 0.9263 | 0.8143 | |
| SF(t − 2) | 1 | 0.9263 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9035 | 0.7371 | 0.6133 |
| SF(t − 1) | 1 | 0.9035 | 0.7371 | |
| SF(t − 2) | 1 | 0.9035 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.7939 | 0.6104 | 0.5285 |
| SF(t − 1) | 1 | 0.7939 | 0.6104 | |
| SF(t − 2) | 1 | 0.7939 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.3871 | 0.2223 | 0.1150 |
| SF(t − 1) | 1 | 0.3871 | 0.2224 | |
| SF(t − 2) | 1 | 0.3871 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9744 | 0.9193 | 0.8579 |
| SF(t − 1) | 1 | 0.9744 | 0.9193 | |
| SF(t − 2) | 1 | 0.9744 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9474 | 0.9060 | 0.8801 |
| SF(t − 1) | 1 | 0.9474 | 0.9060 | |
| SF(t − 2) | 1 | 0.9475 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.8345 | 0.6837 | 0.6070 |
| SF(t − 1) | 1 | 0.8345 | 0.6838 | |
| SF(t − 2) | 1 | 0.8345 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9438 | 0.8604 | 0.7930 |
| SF(t − 1) | 1 | 0.9438 | 0.8604 | |
| SF(t − 2) | 1 | 0.9438 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.9293 | 0.8097 | 0.7007 |
| SF(t − 1) | 1 | 0.9293 | 0.8097 | |
| SF(t − 2) | 1 | 0.9293 | ||
| SF(t − 3) | 1 | |||
| SF(t) | 1 | 0.4886 | 0.2987 | 0.2989 |
| SF(t − 1) | 1 | 0.4894 | 0.2993 | |
| SF(t − 2) | 1 | 0.4888 | ||
| SF(t − 3) | 1 | |||
Input parameter scenarios designed for the present study.
| Output parameter | Input parameter scenario | Input parameter(s) | Description |
|---|---|---|---|
| SF(t) | 1 | SF(t − 1) | When SF data of previous day is available |
| 2 | SF(t − 1) + SF(t − 2) | When SF data of previous 2 days is available | |
| 3 | SF(t − 1) + SF(t − 2) + SF(t − 3) | When SF data of previous 3 days is available |
Figure 3SF imputed values for Johor data set (SF values in units of m3/s, time step in units of day).
Data partitioning for each river’s data set.
| River data set | Total duration | Training set | Test set |
|---|---|---|---|
| Sungai Johor, Johor | 1st January 1978 to 31st December 1998 | 1st January 1978 to 26th October 1994 | 27th October 1994 to 31st December 1998 |
| Sungai Muda, Kedah | 1st January 1976 to 31st December 2009 | 1st January 1976 to 22nd March 2003 | 23rd March 2003 to 31st December 2009 |
| Sungai Kelantan, Kelantan | 1st January 1980 to 31st December 1997 | 1st January 1980 to 2nd June 1994 | 3rd June 1994 to 31st December 1997 |
| Sungai Melaka, Melaka | 1st January 1979 to 31st December 2004 | 1st January 1979 to 27th October 1999 | 28th October 1999 to 31st December 2004 |
| Sungai Kepis, Negeri Sembilan | 1st January 1980 to 31st December 1995 | 1st January 1980 to 25th October 1992 | 26th October 1992 to 31st December 1995 |
| Sungai Pahang, Pahang | 1st January 1988 to 31st December 2009 | 1st January 1988 to 14th August 2005 | 15th August 2005 to 31st December 2009 |
| Sungai Perak, Perak | 1st January 1977 to 31st December 1995 | 1st January 1977 to 20th March 1992 | 21st March 1992 to 31st December 1995 |
| Sungai Arau, Perlis | 1st January 1986 to 31st December 1995 | 1st January 1986 to 7th January 1994 | 8th January 1994 to 31st December 1995 |
| Sungai Selangor, Selangor | 1st January 1976 to 31st December 2001 | 1st January 1976 to 26th October 1996 | 27th October 1996 to 31st December 2001 |
| Sungai Dungun, Terengganu | 1st January 1977 to 31st December 1996 | 1st January 1977 to 7th January 1993 | 8th January 1993 to 31st December 1996 |
| Sungai Klang, F.T. of Kuala Lumpur | 1st January 2010 to 31st December 2010 | 1st January 2010 to 26th October 2010 | 27th October 2010 to 31st December 2010 |
Experimental setup.
| Experimental setup parameter | Specification |
|---|---|
| Programming language | Python 3.7.12 |
| ML libraries | Scikit-learn 1.0.1 (for SVM) TensorFlow 2.7.0 (for ANN, LSTM) |
| Notebook environment | Jupyter (hosted by Colaboratory) |
| Central processing unit (CPU) | Intel® Core™ i7-6700HQ CPU @ 2.60 GHz |
| Random access memory (RAM) | 16.0 GB |
| System type | 64-bit operating system, × 64 based processor |
Hyperparameter tuning for SVR algorithm.
| Hyperparameter tuning of SVR algorithm | ||
|---|---|---|
| Hyperparameter | Selected | Default |
| Kernel function | RBF | RBF |
Hyperparameter tuning for ANN algorithm.
| Hyperparameter tuning of ANN algorithm | ||
|---|---|---|
| Hyperparameter | Selected | Default |
| Number of hidden layers | 2 | No default |
| Number of neurons in each hidden layer | 6 | No default |
| Number of epochs | 100 | 1 |
| Early callback function | When validation loss does not improve after 50 epochs | None |
| Batch number | 32 | 32 |
| Training algorithm | Adam | RMSprop |
| Activation function | ReLU | None |
| Loss function | MSE | No default |
Figure 4Train and validation loss vs epochs for ANN3 model training process.
Hyperparameter tuning of LSTM algorithm.
| Hyperparameter tuning of LSTM algorithm | ||
|---|---|---|
| Hyperparameter | Selected | Default |
| Number of hidden layers | 2 | No default |
| Number of neurons in each hidden layer | 50 | No default |
| Number of epochs | 100 | 1 |
| Early callback function | When validation loss does not improve after 50 epochs | None |
| Step number | 7 | No default |
| Batch number | 32 | 32 |
| Training algorithm | Adam | RMSprop |
| Dropout regularization on each hidden layer | 0.2 | None |
| Activation function | tanh | tanh |
| Recurrent activation function | sigmoid | sigmoid |
| Loss function | MSE | No default |
Figure 5Train and validation loss vs epochs for LSTM2 model training process.
Models’ performance scores based on Sungai Johor test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 6.6855 | 21.3127 | 0.7509 | 6 | 6 | 6 | 6.00 |
| SVR2 | 5.6855 | 20.7216 | 0.7645 | 4 | 4 | 4 | 4.00 |
| SVR3 | 5.5750 | 21.1976 | 0.7536 | 3 | 5 | 5 | 4.33 |
| ANN1 | 6.0686 | 14.3558 | 0.8870 | 5 | 3 | 3 | 3.67 |
| ANN2 | 4.8265 | 10.9228 | 0.9346 | 2 | 2 | 2 | 2.00 |
| LSTM1 | 9.3446 | 21.7108 | 0.7421 | 8 | 8 | 8 | 8.00 |
| LSTM2 | 9.3061 | 21.6780 | 0.7429 | 7 | 7 | 7 | 7.00 |
| LSTM3 | 9.5766 | 22.1443 | 0.7317 | 9 | 9 | 9 | 9.00 |
Significant values are in bold.
Figure 6Actual vs predicted SF of best models based on each algorithm for Sungai Johor test set.
Models’ performance scores based on Sungai Muda test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 13.3065 | 30.8601 | 0.8821 | 3 | 6 | 6 | 5.00 |
| SVR2 | 13.0296 | 30.2442 | 0.8867 | 2 | 4 | 4 | 3.33 |
| 29.7585 | 0.8903 | 2 | 2 | ||||
| ANN1 | 14.6595 | 30.3473 | 0.8859 | 5 | 5 | 5 | 5.00 |
| ANN2 | 15.4957 | 6 | 2.67 | ||||
| ANN3 | 14.4053 | 29.7719 | 0.8902 | 4 | 3 | 3 | 3.33 |
| LSTM1 | 20.4944 | 45.3718 | 0.7456 | 7 | 7 | 7 | 7.00 |
| LSTM2 | 22.3298 | 45.7841 | 0.7409 | 8 | 8 | 8 | 8.00 |
| LSTM3 | 22.8569 | 45.9370 | 0.7392 | 9 | 9 | 9 | 9.00 |
Significant values are in bold.
Figure 7Actual vs predicted SF of best models based on each algorithm for Sungai Muda test set.
Models’ performance scores based on Sungai Kelantan test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 75.2411 | 175.7898 | 0.8493 | 4 | 4 | 4 | 4.00 |
| SVR2 | 73.9793 | 176.0282 | 0.8489 | 3 | 5 | 5 | 4.33 |
| ANN1 | 76.3966 | 174.9986 | 0.8507 | 6 | 2 | 2 | 3.33 |
| ANN2 | 75.8246 | 180.5615 | 0.8410 | 5 | 6 | 6 | 5.67 |
| ANN3 | 73.7096 | 175.1687 | 0.8504 | 2 | 3 | 3 | 2.67 |
| LSTM1 | 133.7528 | 265.5139 | 0.6580 | 7 | 9 | 9 | 8.33 |
| LSTM2 | 134.1845 | 264.5478 | 0.6605 | 8 | 7 | 7 | 7.33 |
| LSTM3 | 134.3691 | 264.5587 | 0.6605 | 9 | 8 | 8 | 8.33 |
Significant values are in bold.
Figure 8Actual vs predicted SF of best models based on each algorithm for Sungai Kelantan test set.
Models’ performance scores based on Sungai Melaka test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 2.7688 | 6.7611 | 0.6057 | 3 | 4 | 4 | 3.67 |
| SVR2 | 2.9154 | 7.3515 | 0.5339 | 5 | 5 | 5 | 5.00 |
| SVR3 | 2.9217 | 7.5694 | 0.5058 | 6 | 6 | 6 | 6.00 |
| ANN2 | 2.8758 | 6.5140 | 0.6340 | 4 | 3 | 3 | 3.33 |
| ANN3 | 2.7218 | 6.1571 | 0.6730 | 2 | 2 | 2 | 2.00 |
| LSTM1 | 4.1403 | 8.1246 | 0.4327 | 9 | 7 | 7 | 7.67 |
| LSTM2 | 4.0984 | 8.1950 | 0.4228 | 7 | 9 | 9 | 8.33 |
| LSTM3 | 4.1347 | 8.1269 | 0.4324 | 8 | 8 | 8 | 8.00 |
Significant values are in bold.
Figure 9Actual vs predicted SF of best models based on each algorithm for Sungai Melaka test set.
Models’ performance scores based on Sungai Kepis test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 8.8078 | 183.6942 | 0.0001 | 5 | 6 | 6 | 5.67 |
| SVR2 | 8.8279 | 183.6641 | 0.0004 | 6 | 4 | 4 | 4.67 |
| SVR3 | 8.7211 | 183.6811 | 0.0002 | 4 | 5 | 5 | 4.67 |
| ANN1 | 10.5674 | 183.8572 | − 0.0017 | 8 | 8 | 8 | 8.00 |
| ANN2 | 10.5064 | 183.7476 | − 0.0005 | 7 | 7 | 7 | 7.00 |
| ANN3 | 10.8344 | 183.9346 | − 0.0025 | 9 | 9 | 9 | 9.00 |
| LSTM1 | 0.5061 | 2.6564 | 0.0102 | 3 | 2 | 2 | 2.33 |
| LSTM2 | 0.5028 | 2.6654 | 0.0035 | 2 | 3 | 3 | 2.67 |
Significant values are in bold.
Figure 10Actual vs predicted SF of best models based on each algorithm for Sungai Kepis test set.
Models’ performance scores based on Sungai Pahang test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 85.0020 | 143.9947 | 0.9389 | 6 | 6 | 6 | 6.00 |
| SVR2 | 68.8680 | 118.2528 | 0.9588 | 4 | 3 | 3 | 3.33 |
| SVR3 | 65.5277 | 120.8079 | 0.9570 | 3 | 4 | 4 | 3.67 |
| ANN1 | 81.6888 | 137.3886 | 0.9444 | 5 | 5 | 5 | 5.00 |
| ANN2 | 62.7678 | 105.4579 | 0.9672 | 2 | 2 | 2 | 2.00 |
| LSTM1 | 130.0995 | 215.9988 | 0.8625 | 9 | 9 | 9 | 9.00 |
| LSTM2 | 128.5396 | 213.9796 | 0.8651 | 8 | 7 | 7 | 7.33 |
| LSTM3 | 127.6468 | 214.9783 | 0.8638 | 7 | 8 | 8 | 7.67 |
Significant values are in bold.
Figure 11Actual vs predicted SF of best models based on each algorithm for Sungai Pahang test set.
Models’ performance scores based on Sungai Perak test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 19.8748 | 36.5196 | 0.7338 | 6 | 4 | 4 | 4.67 |
| SVR2 | 19.6637 | 37.3820 | 0.7211 | 3 | 5 | 5 | 4.33 |
| SVR3 | 19.7318 | 39.0645 | 0.6954 | 4 | 6 | 6 | 5.33 |
| ANN1 | 19.7860 | 30.5695 | 0.8135 | 5 | 3 | 3 | 3.67 |
| ANN3 | 18.2248 | 29.7523 | 0.8233 | 2 | 2 | 2 | 2.00 |
| LSTM1 | 25.4832 | 40.5151 | 0.6736 | 9 | 8 | 8 | 8.33 |
| LSTM2 | 25.4778 | 40.6169 | 0.6719 | 8 | 9 | 9 | 8.67 |
| LSTM3 | 25.0893 | 40.4116 | 0.6752 | 7 | 7 | 7 | 7.00 |
Significant values are in bold.
Figure 12Actual vs predicted SF of best models based on each algorithm for Sungai Perak test set.
Models’ performance scores based on Sungai Arau test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 0.6810 | 1.8868 | 0.4296 | 4 | 4 | 4 | 4.00 |
| SVR2 | 0.7022 | 2.0166 | 0.3485 | 5 | 5 | 5 | 5.00 |
| SVR3 | 0.7143 | 2.0696 | 0.3138 | 6 | 6 | 6 | 6.00 |
| ANN1 | 0.5626 | 1.5062 | 0.6365 | 2 | 2 | 2 | 2.00 |
| ANN2 | 0.5674 | 1.5568 | 0.6117 | 3 | 3 | 3 | 3.00 |
| LSTM1 | 0.8803 | 2.2061 | 0.2264 | 9 | 9 | 9 | 9.00 |
| LSTM2 | 0.8595 | 2.0975 | 0.3007 | 7 | 7 | 7 | 7.00 |
| LSTM3 | 0.8610 | 2.1073 | 0.2941 | 8 | 8 | 8 | 8.00 |
Significant values are in bold.
Figure 13Actual vs predicted SF of best models based on each algorithm for Sungai Arau test set.
Models’ performance scores based on Sungai Selangor test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 8.6747 | 15.7719 | 0.8525 | 6 | 4 | 4 | 4.67 |
| SVR2 | 8.6363 | 16.2904 | 0.8426 | 5 | 5 | 5 | 5.00 |
| SVR3 | 8.4787 | 16.4230 | 0.8400 | 4 | 6 | 6 | 5.33 |
| ANN1 | 7.8569 | 14.1281 | 0.8816 | 3 | 3 | 3 | 3.00 |
| ANN2 | 7.3758 | 13.9850 | 0.8840 | 2 | 2 | 2 | 2.00 |
| LSTM1 | 11.2372 | 20.2553 | 0.7551 | 8 | 9 | 9 | 8.67 |
| LSTM2 | 11.2378 | 20.2182 | 0.7560 | 9 | 8 | 8 | 8.33 |
| LSTM3 | 11.1610 | 20.1812 | 0.7569 | 7 | 7 | 7 | 7.00 |
Significant values are in bold.
Figure 14Actual vs predicted SF of best models based on each algorithm for Sungai Selangor test set.
Models’ performance scores based on Sungai Dungun test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 22.0572 | 53.9440 | 0.8516 | 6 | 3 | 3 | 4.00 |
| SVR2 | 21.1469 | 54.2140 | 0.8501 | 5 | 4 | 4 | 4.33 |
| SVR3 | 20.7256 | 54.6478 | 0.8477 | 4 | 5 | 5 | 4.67 |
| ANN2 | 18.9638 | 52.5147 | 0.8593 | 2 | 2 | 2 | 2.00 |
| ANN3 | 20.3061 | 55.4433 | 0.8432 | 3 | 6 | 6 | 5.00 |
| LSTM1 | 29.1170 | 76.3889 | 0.7024 | 7 | 7 | 7 | 7.00 |
| LSTM2 | 29.8838 | 76.7408 | 0.6997 | 8 | 9 | 9 | 8.67 |
| LSTM3 | 30.0394 | 76.4696 | 0.7018 | 9 | 8 | 8 | 8.33 |
Significant values are in bold.
Figure 15Actual vs predicted SF of best models based on each algorithm for Sungai Dungun test set.
Models’ performance scores based on Sungai Klang test set.
| Model | MAE | RMSE | R2 | Rank (MAE) | Rank (RMSE) | Rank (R2) | RM |
|---|---|---|---|---|---|---|---|
| SVR1 | 6.7184 | − 0.0712 | 2 | 2 | 1.67 | ||
| SVR2 | 3.9975 | 6.8580 | − 0.1162 | 3 | 3 | 3 | 3.00 |
| 3.8568 | 2 | ||||||
| ANN1 | 5.2573 | 7.5966 | − 0.3696 | 5 | 5 | 8 | 6.00 |
| ANN2 | 5.0754 | 7.4943 | − 0.3329 | 4 | 4 | 6 | 4.67 |
| ANN3 | 6.0143 | 8.1951 | − 0.5939 | 6 | 9 | 9 | 8.00 |
| LSTM1 | 6.7049 | 7.8051 | − 0.3499 | 9 | 8 | 7 | 8.00 |
| LSTM2 | 6.4877 | 7.6416 | − 0.2939 | 8 | 7 | 5 | 6.67 |
| LSTM3 | 6.4529 | 7.6092 | − 0.2830 | 7 | 6 | 4 | 5.67 |
Significant values are in bold.
Figure 16Actual vs predicted SF of best models based on each algorithm for Sungai Klang test set.
Matrix of most accurate algorithm and input scenario for each data set.
| Algorithm | Input scenario 1 | Input scenario 2 | Input scenario 3 |
|---|---|---|---|
| SVR | Sungai Muda, Sungai Kelantan, Sungai Klang | ||
| ANN | Sungai Melaka, Sungai Dungun | Sungai Perak | Sungai Johor, Sungai Pahang, Sungai Arau, Sungai Selangor |
| LSTM | Sungai Kepis |
Parameters with highest number of best prediction results.
| Parameter | Description |
|---|---|
| Algorithm | ANN ( |
| Input scenario | Input scenario 3 ( |
| Model | ANN3 ( |
Average RM of each model based on all data sets. Significant values are in bold.
| Data set | RM | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| SVR1 | SVR2 | SVR3 | ANN1 | ANN2 | ANN3 | LSTM1 | LSTM2 | LSTM3 | |
| Sungai Johor | 6.00 | 4.00 | 4.33 | 3.67 | 2.00 | 1.00 | 8.00 | 7.00 | 9.00 |
| Sungai Muda | 5.00 | 3.33 | 1.67 | 5.00 | 2.67 | 3.33 | 7.00 | 8.00 | 9.00 |
| Sungai Kelantan | 4.00 | 4.33 | 1.00 | 3.33 | 5.67 | 2.67 | 8.33 | 7.33 | 8.33 |
| Sungai Melaka | 3.67 | 5.00 | 6.00 | 1.00 | 3.33 | 2.00 | 7.67 | 8.33 | 8.00 |
| Sungai Kepis | 5.67 | 4.67 | 4.67 | 8.00 | 7.00 | 9.00 | 2.33 | 2.67 | 1.00 |
| Sungai Pahang | 6.00 | 3.33 | 3.67 | 5.00 | 2.00 | 1.00 | 9.00 | 7.33 | 7.67 |
| Sungai Perak | 4.67 | 4.33 | 5.33 | 3.67 | 1.00 | 2.00 | 8.33 | 8.67 | 7.00 |
| Sungai Arau | 4.00 | 5.00 | 6.00 | 2.00 | 3.00 | 1.00 | 9.00 | 7.00 | 8.00 |
| Sungai Selangor | 4.67 | 5.00 | 5.33 | 3.00 | 2.00 | 1.00 | 8.67 | 8.33 | 7.00 |
| Sungai Dungun | 4.00 | 4.33 | 4.67 | 1.00 | 2.00 | 5.00 | 7.00 | 8.67 | 8.33 |
| Sungai Klang, | 1.67 | 3.00 | 1.33 | 6.00 | 4.67 | 8.00 | 8.00 | 6.67 | 5.67 |
| Average RM | 4.48 | 4.21 | 4.00 | 3.79 | 3.27 | 7.58 | 7.27 | 7.18 | |
Figure 17Bar chart of average RM for each model based on all data sets.