Outlier Detection in Hydrological Data Using Machine Learning: A Case Study in Lao PDR
Abstract
1. Introduction
2. Study Area and Data Used
3. Methodology
3.1. Unsupervised Learning-Isolation Forest
3.2. Supervised Learning-XGBoost
3.3. Thresholds for Outlier Classification in Labeled Datasets
3.3.1. Statistical Check (Minimum/Maximum Values)
3.3.2. Slope (Rate of Change Ratio)
3.3.3. Duration Check
3.3.4. Spatial Check
4. Results and Discussions
4.1. Outlier Detection in Statistical Check
4.2. Outlier Detection in Slope (Ratio of Change) Check
4.3. Outlier Detection in Duration Check
4.4. Outlier Detection in Spatial Check
4.5. Synthesis of Outlier Detection Results from Unsupervised and Supervised Learning Approaches
5. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Los Angeles County Department of Public Works. Hydrology Manual; Water Resources Division, Los Angeles County Department of Public Works: Alhambra, CA, USA, 2006.
- WMO. Guidelines on Surface Station Data Quality Control and Quality Assurance for Climate Applications; WMO-No. 1269; World Meteorological Organization: Geneva, Switzerland, 2021. [Google Scholar]
- Zhou, R.D.; Seong, Y.U.; Liu, J.P. Review of the development of hydrological data quality control in Typhoon Committee Members. Trop. Cyclone Res. Rev. 2024, 13, 113–124. [Google Scholar] [CrossRef]
- Jeong, G.; Yoo, D.-G.; Kim, T.-W.; Lee, J.-Y.; Noh, J.-W.; Kang, D. Integrated Quality Control Process for Hydrological Database: A Case Study of Daecheong Dam Basin in South Korea. Water 2021, 13, 2820. [Google Scholar] [CrossRef]
- Yu, J.H.; Li, Y.C.; Huang, X.; Ye, X.Y. Data quality and uncertainty issues in flood prediction: A systematic review. Int. J. Digit. Earth 2025, 18, 2495738. [Google Scholar] [CrossRef]
- Nicholaus, I.T.; Park, J.R.; Jung, K.; Lee, J.S.; Kang, D.-K. Outlier Detection of Water Level Using Deep Autoencoder. Sensors 2021, 21, 6679. [Google Scholar] [CrossRef] [PubMed]
- Niu, G.; Yang, P.; Zheng, Y.; Cai, X.; Qin, H. Automatic quality control of crowdsourced rainfall data with multiple noises: A machine learning approach. Water Resour. Res. 2021, 57, e2020WR029121. [Google Scholar] [CrossRef]
- Mohammady, M.; Moradi, H.R.; Zeinivand, H.; Temme, A. A comparison of supervised, unsupervised and synthetic land use classification methods in the north of Iran. Int. J. Environ. Sci. Technol. 2015, 12, 1515–1526. [Google Scholar] [CrossRef]
- Russo, S.; Besmer, M.D.; Blumensaat, F.; Bouffard, D.; Disch, A.; Hammes, F.; Hess, A.; Lürig, M.; Matthews, B.; Minaudo, C.; et al. The value of human data annotation for machine learning based Outlier detection in environmental systems. Water Res. 2021, 206, 117695. [Google Scholar] [CrossRef] [PubMed]
- Kim, C.-S.; Kim, C.-R.; Kok, K.-H.; Lee, J.-M. Water Level Prediction and Forecasting Using a LSTM Model for Nam Ngum River Basin in Lao PDR. Water 2024, 16, 1777. [Google Scholar] [CrossRef]
- Halicki, M.; Niedzielski, T. A new approach for hydrograph data interpolation and outlier removal for vector autoregressive modelling: A case study from the Odra/Oder River. Stoch. Environ. Res. Risk Assess. 2024, 38, 2781–2796. [Google Scholar] [CrossRef]
- Liu, F.T.; Ting, K.M.; Zhou, Z.H. Isolation forest. In Proceedings of the 2008 Eighth IEEE International Conference on Data Mining, Pisa, Italy, 15–19 December 2008; pp. 413–422. [Google Scholar]
- Chen, T.Q.; Guestrin, C. XGBoost: A Scalable Tree Boosting System. In Proceedings of the KDD‘16: Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, San Francisco, CA, USA, 13–17 August 2016; pp. 785–794. [Google Scholar] [CrossRef]
- Hubbard, K.G.; Goddard, S.; Sorensen, W.D.; Wells, N.; Osugi, T.T. Performance of quality assurance procedures for an applied climate information system. J. Atmos. Ocean. Technol. 2005, 22, 105–112. [Google Scholar] [CrossRef]
- Kim, H.S.; Kim, C.S. Application of the Quality Control System for Hydrological Data. In Proceedings of the Korean Society of Civil Engineers 2005 Conference, Jeju, Republic of Korea, 20–21 October 2005. [Google Scholar]
- K-Water. Development of Quality Control Algorithm for Standard Database of Water Information; Interim Report of Korea Water Resources Corporation: Daejeon, Republic of Korea, 2019. [Google Scholar]
















| No. | Station | Latitude | Longitude | 
|---|---|---|---|
| 1 | Phiangluang | 19°34′06″ N | 103°04′17″ E | 
| 2 | Thalad | 18°31′26″ N | 102°30′54″ E | 
| 3 | Pakkayoung | 18°25′53″ N | 102°32′16″ E | 
| 4 | Veunkham | 18°10′37″ N | 102°36′53″ E | 
| Rainfall (mm) | Water Level (m) | |||||
|---|---|---|---|---|---|---|
| Station | Annual Average | Max. | Average | Max. | Average | Min | 
| Phiangluang | 1283 | 155.8 | 3.8 | 8.72 | 0.79 | 0.35 | 
| Thalad | 1515 | 118.5 | 4.5 | 10.95 | 6.09 | 0.64 | 
| Pakkayoung | 1629 | 111.5 | 4.8 | 8.72 | 3.95 | 2.28 | 
| Veunkham | 1651 | 142.8 | 4.9 | 9.10 | 2.71 | 0 | 
| Station | Rainfall Data Period (RF) | Water Level (WL) | Amount of Available Data (Days) | 
|---|---|---|---|
| Phiangluang | 1 January 2019–11 October 2021 | 1 January 2019–11 October 2021 | 1014 | 
| Thalad | 1 January 2019–11 October 2021 | 1 January 2019–11 October 2021 | 1014 | 
| Pakkayoung | 1 January 2019–11 October 2021 | 1 January 2019–11 October 2021 | 1014 | 
| Veunkham | 1 January 2019–11 October 2021 | 1 January 2019–11 October 2021 | 1014 | 
| Data | Boundary | Threshold | 
|---|---|---|
| Rainfall | Upper (TST,max) | |
| Water level | Upper (TST,max) | |
| Lower (TST,min) | 
| Data | Boundary | Threshold | Note | 
|---|---|---|---|
| Water level | Upper (TSL,max) | Increasing slope | |
| Upper (TSL,max) | Decreasing slope | 
| Data | Boundary | Threshold | 
|---|---|---|
| Water Level | Upper (TD,max) | 
| Data | Boundary | Threshold | Note | 
|---|---|---|---|
| Rainfall | Upper (TSP,max) | 95th percentile of RDSdiff | Exclude zero RDSdiff | 
| Lower (TSP,min) | 5th percentile of RDSdiff | 
| Contamination Level = 0.005 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Normal | Outlier | |||||||
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | 
| Phiangluang | 1.00 | 1.00 | 1.00 | 1008 | 1.00 | 1.00 | 1.00 | 6 | 
| Thalad | 1.00 | 1.00 | 1.00 | 1010 | 0.67 | 1.00 | 0.80 | 4 | 
| Pakkayoung | 1.00 | 1.00 | 1.00 | 1009 | 0.83 | 1.00 | 0.91 | 5 | 
| Veunkham | 1.00 | 1.00 | 1.00 | 1011 | 0.50 | 1.00 | 0.67 | 3 | 
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
|---|---|---|---|---|
| Phiangluang | 6 | 0 | 1008 | 0 | 
| Thalad | 4 | 2 | 1008 | 0 | 
| Pakkayoung | 5 | 1 | 1008 | 0 | 
| Veunkham | 3 | 3 | 1008 | 0 | 
| Normal | Outlier | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | |
| Phiangluang | Training | 1.00 | 1.00 | 1.00 | 707 | 0.75 | 1.00 | 0.86 | 3 | 
| Testing | 1.00 | 1.00 | 1.00 | 301 | 1.00 | 1.00 | 1.00 | 3 | |
| Thalad | Training | 1.00 | 1.00 | 1.00 | 708 | 0 | 0 | 0 | 2 | 
| Testing | 0.99 | 1.00 | 1.00 | 302 | 0 | 0 | 0 | 2 | |
| Pakkayoung | Training | 1.00 | 1.00 | 1.00 | 708 | 0 | 0 | 0 | 2 | 
| Testing | 1.00 | 1.00 | 1.00 | 301 | 0 | 0 | 0 | 3 | |
| Veunkham | Training | 1.00 | 1.00 | 1.00 | 707 | 0.75 | 1.00 | 0.86 | 3 | 
| Testing | 1.00 | 0.99 | 1.00 | 304 | 0 | 0 | 0 | 0 | |
| Training | Testing | |||||||
|---|---|---|---|---|---|---|---|---|
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
| Phiangluang | 3 | 1 | 706 | 0 | 3 | 0 | 301 | 0 | 
| Thalad | 0 | 0 | 708 | 2 | 0 | 0 | 302 | 2 | 
| Pakkayoung | 0 | 0 | 708 | 2 | 0 | 0 | 301 | 3 | 
| Veunkham | 3 | 1 | 706 | 0 | 0 | 2 | 302 | 0 | 
| Contamination Level = 0.01 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Normal | Outlier | |||||||
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | 
| Phiangluang | 1.00 | 0.99 | 1.00 | 1009 | 0.45 | 1.00 | 0.62 | 5 | 
| Thalad | 1.00 | 1.00 | 1.00 | 1002 | 1.00 | 0.92 | 0.96 | 12 | 
| Pakkayoung | 1.00 | 1.00 | 1.00 | 1004 | 0.91 | 1.00 | 0.95 | 10 | 
| Veunkham | 0.96 | 1.00 | 0.98 | 967 | 1.00 | 0.23 | 0.38 | 47 | 
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
|---|---|---|---|---|
| Phiangluang | 5 | 6 | 1003 | 0 | 
| Thalad | 11 | 0 | 1002 | 1 | 
| Pakkayoung | 10 | 1 | 1003 | 0 | 
| Veunkham | 11 | 0 | 967 | 36 | 
| Normal | Outlier | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | |
| Phiangluang | Training | 1.00 | 1.00 | 1.00 | 707 | 0.75 | 1.00 | 0.86 | 3 | 
| Testing | 1.00 | 1.00 | 1.00 | 302 | 1.00 | 1.00 | 1.00 | 2 | |
| Thalad | Training | 1.00 | 1.00 | 1.00 | 701 | 0.90 | 1.00 | 0.95 | 9 | 
| Testing | 1.00 | 1.00 | 1.00 | 301 | 1.00 | 1.00 | 1.00 | 3 | |
| Pakkayoung | Training | 1.00 | 1.00 | 1.00 | 702 | 1.00 | 1.00 | 1.00 | 8 | 
| Testing | 1.00 | 1.00 | 1.00 | 302 | 1.00 | 1.00 | 1.00 | 2 | |
| Veunkham | Training | 1.00 | 1.00 | 1.00 | 665 | 1.00 | 1.00 | 1.00 | 45 | 
| Testing | 1.00 | 1.00 | 1.00 | 302 | 1.00 | 1.00 | 1.00 | 2 | |
| Training | Testing | |||||||
|---|---|---|---|---|---|---|---|---|
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
| Phiangluang | 3 | 1 | 706 | 0 | 2 | 0 | 302 | 0 | 
| Thalad | 9 | 1 | 700 | 0 | 3 | 0 | 301 | 0 | 
| Pakkayoung | 8 | 0 | 702 | 0 | 2 | 0 | 302 | 0 | 
| Veunkham | 45 | 0 | 665 | 0 | 2 | 0 | 302 | 0 | 
| Contamination Level = 0.02 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Normal | Outlier | |||||||
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | 
| Phiangluang | 0.99 | 1.00 | 0.99 | 982 | 1.00 | 0.66 | 0.79 | 32 | 
| Thalad | 0.99 | 1.00 | 0.99 | 987 | 0.90 | 0.70 | 0.79 | 27 | 
| Pakkayoung | 0.99 | 1.00 | 1.00 | 986 | 1.00 | 0.75 | 0.86 | 28 | 
| Veunkham | 0.96 | 1.00 | 0.98 | 959 | 1.00 | 0.36 | 0.53 | 55 | 
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
|---|---|---|---|---|
| Phiangluang | 21 | 0 | 982 | 11 | 
| Thalad | 19 | 2 | 985 | 8 | 
| Pakkayoung | 21 | 0 | 986 | 7 | 
| Veunkham | 20 | 0 | 959 | 35 | 
| Normal | Outlier | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | |
| Phiangluang | Training | 1.00 | 1.00 | 1.00 | 688 | 0.96 | 1.00 | 0.98 | 22 | 
| Testing | 1.00 | 0.99 | 0.99 | 294 | 0.71 | 1.00 | 0.83 | 10 | |
| Thalad | Training | 1.00 | 1.00 | 1.00 | 692 | 0.90 | 1.00 | 0.95 | 18 | 
| Testing | 1.00 | 0.99 | 0.99 | 295 | 0.73 | 0.89 | 0.80 | 9 | |
| Pakkayoung | Training | 1.00 | 1.00 | 1.00 | 692 | 1.00 | 1.00 | 1.00 | 18 | 
| Testing | 1.00 | 1.00 | 1.00 | 294 | 1.00 | 1.00 | 1.00 | 10 | |
| Veunkham | Training | 1.00 | 1.00 | 1.00 | 673 | 1.00 | 0.95 | 0.97 | 37 | 
| Testing | 1.00 | 0.99 | 0.99 | 286 | 0.85 | 0.94 | 0.89 | 18 | |
| Training | Testing | |||||||
|---|---|---|---|---|---|---|---|---|
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
| Phiangluang | 22 | 1 | 687 | 0 | 10 | 4 | 290 | 0 | 
| Thalad | 18 | 2 | 690 | 0 | 8 | 3 | 292 | 1 | 
| Pakkayoung | 18 | 0 | 692 | 0 | 10 | 0 | 294 | 0 | 
| Veunkham | 35 | 0 | 673 | 2 | 17 | 3 | 283 | 1 | 
| Contamination Level = 0.01 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Normal | Outlier | |||||||
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | 
| Phiangluang | 0.96 | 1.00 | 0.98 | 971 | 1.00 | 0.16 | 0.28 | 43 | 
| Thalad | 0.98 | 1.00 | 0.99 | 983 | 1.00 | 0.32 | 0.49 | 31 | 
| Pakkayoung | 0.98 | 1.00 | 0.99 | 982 | 1.00 | 0.34 | 0.51 | 32 | 
| Veunkham | 1.00 | 1.00 | 1.00 | 1001 | 1.00 | 0.62 | 0.76 | 13 | 
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
|---|---|---|---|---|
| Phiangluang | 7 | 0 | 971 | 36 | 
| Thalad | 10 | 0 | 983 | 21 | 
| Pakkayoung | 11 | 0 | 982 | 21 | 
| Veunkham | 8 | 0 | 1001 | 5 | 
| Normal | Outlier | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | |
| Phiangluang | Training | 1.00 | 1.00 | 1.00 | 687 | 1.00 | 1.00 | 1.00 | 23 | 
| Testing | 1.00 | 1.00 | 1.00 | 284 | 1.00 | 1.00 | 1.00 | 20 | |
| Thalad | Training | 1.00 | 1.00 | 1.00 | 691 | 1.00 | 1.00 | 1.00 | 19 | 
| Testing | 1.00 | 1.00 | 1.00 | 292 | 1.00 | 1.00 | 1.00 | 12 | |
| Pakkayoung | Training | 1.00 | 1.00 | 1.00 | 688 | 1.00 | 1.00 | 1.00 | 22 | 
| Testing | 1.00 | 1.00 | 1.00 | 294 | 1.00 | 1.00 | 1.00 | 10 | |
| Veunkham | Training | 1.00 | 1.00 | 1.00 | 697 | 1.00 | 1.00 | 1.00 | 13 | 
| Testing | 1.00 | 1.00 | 1.00 | 304 | 0 | 0 | 0 | 0 | |
| Training | Testing | |||||||
|---|---|---|---|---|---|---|---|---|
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
| Phiangluang | 23 | 0 | 687 | 0 | 20 | 0 | 284 | 0 | 
| Thalad | 19 | 0 | 691 | 0 | 12 | 0 | 292 | 0 | 
| Pakkayoung | 22 | 0 | 688 | 0 | 10 | 0 | 294 | 0 | 
| Veunkham | 13 | 0 | 697 | 0 | 0 | 0 | 304 | 0 | 
| Contamination Level = 0.05 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Normal | Outlier | |||||||
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | 
| Phiangluang | 0.99 | 1.00 | 1.00 | 962 | 0.92 | 0.90 | 0.91 | 52 | 
| Thalad | 1.00 | 1.00 | 1.00 | 962 | 1.00 | 0.98 | 0.99 | 52 | 
| Pakkayoung | 1.00 | 1.00 | 1.00 | 963 | 0.98 | 0.98 | 0.98 | 51 | 
| Veunkham | 1.00 | 1.00 | 1.00 | 962 | 0.94 | 0.92 | 0.93 | 52 | 
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
|---|---|---|---|---|
| Phiangluang | 47 | 4 | 958 | 5 | 
| Thalad | 51 | 0 | 962 | 1 | 
| Pakkayoung | 50 | 1 | 962 | 1 | 
| Veunkham | 48 | 3 | 959 | 4 | 
| Normal | Outlier | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Station Name | Precision | Recall | F1-Score | True Normal | Precision | Recall | F1-Score | True Outlier | |
| Phiangluang | Training | 1.00 | 1.00 | 1.00 | 680 | 1.00 | 1.00 | 1.00 | 30 | 
| Testing | 1.00 | 1.00 | 1.00 | 282 | 1.00 | 1.00 | 1.00 | 22 | |
| Thalad | Training | 1.00 | 1.00 | 1.00 | 674 | 1.00 | 1.00 | 1.00 | 36 | 
| Testing | 1.00 | 1.00 | 1.00 | 288 | 1.00 | 0.94 | 0.97 | 16 | |
| Pakkayoung | Training | 1.00 | 1.00 | 1.00 | 672 | 1.00 | 1.00 | 1.00 | 38 | 
| Testing | 1.00 | 1.00 | 1.00 | 291 | 1.00 | 0.92 | 0.96 | 13 | |
| Veunkham | Training | 1.00 | 1.00 | 1.00 | 681 | 1.00 | 1.00 | 1.00 | 29 | 
| Testing | 1.00 | 1.00 | 1.00 | 281 | 1.00 | 0.96 | 0.98 | 23 | |
| Training | Testing | |||||||
|---|---|---|---|---|---|---|---|---|
| Station Name | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | True Positive (TP) | False Positive (FP) | True Negative (TN) | False Negative (FN) | 
| Phiangluang | 30 | 0 | 680 | 0 | 22 | 0 | 282 | 0 | 
| Thalad | 36 | 0 | 674 | 0 | 15 | 0 | 288 | 1 | 
| Pakkayoung | 38 | 0 | 672 | 0 | 12 | 0 | 291 | 1 | 
| Veunkham | 29 | 0 | 681 | 0 | 22 | 0 | 281 | 1 | 
| Machine Learning Approach | Merits | Demerits | 
|---|---|---|
| Isolation Forest (Unsupervised) | - Does not require labeled training data, making it suitable for stations with no historical outlier labels. - Can capture both minimum and maximum outliers in water level and rainfall data when data distribution is favorable. - Performs well in spatial check when residuals are normally distributed without extreme spikes. - Applicable to a wide range of datasets with minimal pre-processing. | - Performance highly dependent on the shape of data distribution, particularly in the tails. - Low recall when contamination level is set too low for datasets with many true outliers. - May fail to detect outliers if frequent extreme values occur at the data distribution’s tails (e.g., zero water levels at Veunkham). - Requires careful tuning of contamination level to balance precision and recall. | 
| XGBoost (Supervised) | - Achieves high precision and recall when sufficient labeled datasets are available. - Consistently outperforms Isolation Forest in detecting both minimum and maximum water level outliers. - Performs robustly across statistical, duration, and slope checks. - Less sensitive to data distribution shape compared to Isolation Forest | - Requires labeled outlier data for training, which may not be available for all stations. - Performance deteriorates when trained with insufficient or unrepresentative labeled data. - More computationally intensive than Isolation Forest for large datasets. - May overfit if the training dataset is small or noisy. | 
| Model | False Positive (FP) | False Negative (FN) | 
|---|---|---|
| Isolation Forest (IF) | 23 | 192 | 
| XGBoost (Training + Testing) | 19 | 16 | 
| IF/XGBoost | 1.21 | 12.00 | 
| Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. | 
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Kim, C.-S.; Kim, C.-R.; Kok, K.-H. Outlier Detection in Hydrological Data Using Machine Learning: A Case Study in Lao PDR. Water 2025, 17, 3120. https://doi.org/10.3390/w17213120
Kim C-S, Kim C-R, Kok K-H. Outlier Detection in Hydrological Data Using Machine Learning: A Case Study in Lao PDR. Water. 2025; 17(21):3120. https://doi.org/10.3390/w17213120
Chicago/Turabian StyleKim, Chung-Soo, Cho-Rong Kim, and Kah-Hoong Kok. 2025. "Outlier Detection in Hydrological Data Using Machine Learning: A Case Study in Lao PDR" Water 17, no. 21: 3120. https://doi.org/10.3390/w17213120
APA StyleKim, C.-S., Kim, C.-R., & Kok, K.-H. (2025). Outlier Detection in Hydrological Data Using Machine Learning: A Case Study in Lao PDR. Water, 17(21), 3120. https://doi.org/10.3390/w17213120
 
        


 
       