비점오염물질측정망의 탁도 예측을 위한 수질 인자를 이용한 최적 머신러닝 알고리즘 선정
Selection of the best fitted Machine Learning Algorithms for Turbidity Prediction using Water Quality Parameters in Non-point Source Pollution Monitoring Network
Article information
Trans Abstract
This study was aimed to determine the best fitted machine learning model to predict the turbidity relative to water temperature, pH, EC, and DO data collected from non-point source pollution monitoring networks in case of missing data. Thus, K-NN, SVM, and Decision Tree were used to be trained. To assess the sensitivity on each algorithm to the scale of the monitoring data, both raw and normalized data sets were run. Additionally, hyperparameters were tuned to derive optimal values for each algorithm’s performance. K-fold cross-validation was employed to prevent overfitting. After tuning, the top 10 models with the highest NSE were evaluated using separate test data that was not involved in the tuning process. This allowed for further validation of the model performance using metrics such as NSE, MSE, RMSE, and MAE. The results indicated that Decision Tree algorithm achieved highest prediction accuracy followed by SVM and K-NN. Decision Tree was particularly well-suited for accurate turbidity prediction relative to other water quality monitoring data. Thus, machine learning techniques could be effectively used for predicting one of the water quality parameters when it will be partially missed or false recorded.
1. 서 론
하천 및 호수 등 수계로 유입되는 오염물질은 해당 유역의 하·폐수 배출시설 등의 점오염원, 혹은 토지 이용 및 강우에 의해 유출되는 비점오염원으로 구분된다. 현재 국가적으로 점오염원 및 비점오염원 관리를 위한 다양한 대책을 수립하고 노력하고 있지만, 하천 수질을 효과적으로 개선하기에는 여전히 미흡한 것으로 알려져 있다. 2018년 기준, BOD 배출부하량 비율은 점오염원이 32.3%, 비점오염원이 67.7%였으며, 2025년까지 비점오염원의 BOD 배출부하량은 2018년 배출부하량인 701톤/일에서 769톤/일로 9.7% 증가할 것으로 전망하고 있다[1-3].
한편 2006년 7월 태풍 에위니아로 인한 산사태 및 농경지 유실 등으로 인해 농경지와 축산시설 등에서 다량의 토사가 유입되어 소양 댐 상류에 위치한 호소내 탁도가 328NTU로 급격히 증가하였다. 그 이후에도 동일 수준의 탁도가 장기간 유지되어 한강의 수질이 악화되거나 생태계 교란이 발생하는 등 비점오염원로부터 유발된 탁수로 인한 환경 피해가 발생하고 있다[4].
정부는 강우에 의해 유출되는 비점오염물질의 실측자료 확보 및 추세파악과 결과를 활용하여 비점오염물질 정량화, 유출특성 파악 등을 위한 대책 마련에 고심하고 있다. 이러한 문제를 해결하기 위하여 환경부는 비점오염물질측정망에서 수집하는 수질 자동측정 항목을 10분마다 측정 기록하고 있으며, 해당 항목은 수온, pH, EC, DO, 탁도이고, 중권역 이상의 측정망에서는 T-N, T-P, TOC도 측정하도록 고시하고 있다. 또한, 수동 분석 시에는 SS, BOD, T-N, T-P, TOC를 측정하고 있다. 전국 31개의 비점오염물질측정망 중 12개의 측정망이 중권역 측정망으로 지정되어 있으며, 중권역 측정망은 자동 측정을 통해 오염물질의 변동에 대한 관측이 비교적 잘 이루어지고 있어 데이터의 신뢰성이 높다. 반면, 소권역 측정망에서는 직접적으로 오염정도를 확인할 수 있는 SS, BOD, T-N, T-P, TOC에 대한 데이터 확보를 수동 분석(평상시 36회 이상/년(평균 8일), 강우시 12회 이상(2시간 간격))에 의존하고 있어, 데이터 확보의 빈도가 낮고, 분석 시점이 제한적이므로 비점오염원의 정확한 오염 정도를 파악하는 데 한계가 존재한다[5].
기존 연구에 따르면 비점오염원에서 발생하는 수질 항목 중 탁도 항목과 SS, TP, COD, TOC 항목과의 상관성을 나타내는 결정계수(R2)가 0.5860~0.9658로 나타났으며, 탁도 데이터를 활용하여 수질 오염인자의 농도를 예측할 수 있을 것이다[6].
그러나, 비점오염물질측정망의 자동측정 데이터는 센서 오작동문제, 연결부위 폐색, 부유물 부착 등에 기인한 데이터 측정의 오류가 발생할 수 있다. 탁도의 경우 평균적으로 13.7%(4.0%~36.2%)의 이상치가 발생하는 것으로 조사되었으며, 특히, 유지관리에 따른 이상치 발생 비율은 평균 32.9%(3.2%~70.8%)로 조사되어 유지관리에 따른 이상치 발생비율이 다른 수질 항목에 비해 높은 것으로 보고되고 있다. 선행 연구에서는 이러한 이상치 및 결측치의 보완 방법으로 관측 직전 기측정 Data 대체, 관측 직후 기측정 Data 대체, 선형 일차식 및 다항식 대입 등을 통해 Data의 정확도를 보정하였으며 그 과정에서 선형 일차식 대입으로 보정한 탁도의 상관성(NSE, Nash-Sutcliffe efficiency)이 0.915로 가장 높게 나타났다[7].
따라서, 본 연구에서는 소권역 비점오염물질측정망의 수질 자동측정 항목 중 수온, pH, EC, DO 데이터를 활용하여 탁도를 예측하고자 하였다. 머신러닝 알고리즘 중 K 최근접 이웃(K-NN, K-Nearest Neighbor), 서포트 벡터 머신(SVM, Support Vector Machine), 의사결정 나무(DT, Decision Tree) 등을 활용하여 탁도 예측을 위한 최적의 알고리즘을 선정하였다.
2. 연구 방법
2.1. 대상지점 선정 및 측정 자료 수집
본 연구를 위하여 2018년부터 운영하고 있는 소권역 비점오염물질측정망 중 가장 많은 데이터를 축적하고 있는 삼천 측정소(N 35°50'08.7", E 127°06'24.5")에 대한 수질측정자료를 환경부의 비점오염원 관리 정보시스템(http://nonpoint.or.kr/)를 통하여 수집하였다(Fig. 1).
수집된 자료는 머신러닝 알고리즘 모델의 훈련 및 예측 데이터로 활용하였다
2.2. 분석 및 예측 도구
데이터 전처리에는 Microsoft Office Excel(Professional Plus 2021)를 사용하였으며, 머신러닝 학습 및 예측 정확도 분석에는 Python(ver. 3.10.12) 프로그램을 사용하였다. Python은 사용자들이 데이터 분석 및 머신러닝 등에 활용하기 편리하도록 다양한 라이브러리를 제공하고 있으며, 이 중 데이터 프레임을 만들고 데이터에 대한 수정을 할 수 있는 pandas 라이브러리와 머신러닝 훈련 및 예측 정확도 분석에는 sklearn 라이브러리를 활용하였다.
2.3. 머신러닝 예측 및 평가
비점오염물질측정망의 수질 자동측정 항목 중 탁도를 예측하기 위하여 자동측정 항목인 수온, pH, EC, DO 데이터를 활용하였다. 수집된 데이터 중 2018년부터 2021년까지의 데이터는 Training data와 Validation data로 각각 80%와 20%의 비율로 구분하여 학습 하이퍼파라미터 튜닝에 사용하였다. 2022년 데이터는 Test data로 사용하여 기 학습된 모델의 예측 정확도를 검증하였다. 연구에 사용한 머신러닝 알고리즘은 K-NN, SVM, 의사결정 나무였으며, 알고리즘에 따라 데이터 스케일이 영향을 줄 수 있으므로 데이터 정규화 적용 여부를 검토하였다. 이와 더불어 각 알고리즘의 정확도를 향상시키기 위해 하이퍼파라미터 튜닝을 수행하였다. 한편 알고리즘의 과적합(Over fitting)을 방지하기 위해 K-Fold 교차 검증도 수행하였다. 이 과정에서 NES의 비교를 통해 하이퍼파라미터별 정확도를 평가하였다. 이를 통하여 NSE가 가장 높은 상위 10개의 모델을 선정하여 Test data에 대한 이들 각각의 NSE, 평균제곱오차(MSE, Mean Squared Error, 평균 제곱근 오차(RMSE, Root Mean Squared Error), 평균절대오차(MAE, Mean Absolute Error)를 비교하여 최적의 알고리즘을 결정하였다.
2.3.1. 데이터 정규화(Normalization) [8]
알고리즘이 매개변수 설정과 데이터 스케일에 따라 민감하게 영향을 받을 수 있으므로, 이를 개선하기 위하여 각 특성 값의 범위를 동일하게 하거나 분포를 유사하게 변환하는 과정을 거쳐야 한다. 본 연구에서는 아래와 같은 Z-Score 공식을 이용하여 변수의 범위를 0을 중심으로 대칭적으로 분포시키는 정규화 과정을 거쳐 그 영향을 최소화하고자 하였다.
여기서 X는 측정값, m은 평균, σ는 표준편차를 의미한다.
2.3.2. K-NN9)
K-NN은 변인의 값 주변에 적당한 크기의 반경(Neighbor)를 설정하여 공간을 분할하고, 개별 변인의 값과 가장 거리가 가까운 K개의 학습자료를 찾아 학습자료의 종속변수를 대표하는 값을 조건부 평균으로 추정하며, 그 추정값을 평균값으로 확정하였다.
여기서 x0는 입력된 데이터, N0는 x0에 가장 가까운 변인의 값을 가진 K개의 학습자료 변인 값의 집합, yi는 각 학습 데이터 포인트의 종속변수를 의미한다.
2.3.3. SVM [9,10]
SVM은 종속변수 관측치로부터 ‘거리’를 단축하는 조건부 평균 추정치를 도출하는 방법으로 관측치와 조건부 평균 추정치 간의 일정한 허용 구간(Margin)을 설정하고, 이 구간 내의 데이터에 대해서는 오차를 무시하는 방식을 채택한다(Fig. 2). 따라서, SVM은 구간 외부에 위치한 관측치만을 고려하여 평균치의 오차를 최소화하는 방식으로 추정치를 도출하였다.
2.3.4. 의사결정 나무 [9]
의사결정 나무는 데이터를 특정 함수 형태로 제한하지 않고, 변수 값에 따라 데이터를 2분할하여 조건부 평균을 도출하는 방법이다. 각 분할된 공간 내에서는 동일한 값을 부여하며, 이 값은 해당 공간에 포함된 데이터의 대표값을 사용한다. 분할 과정에서는 평균제곱오차를 최소화하는 변인과 임계값을 평균치로 선택하지만, 분할이 지나치게 많아질 경우 과적합 문제가 발생할 수 있으므로 적절한 지점에서 분할 과정의 진행을 중단하는 것이 중요하다(Fig. 3).
3. 결과 및 고찰
3.1. 최적의 하이퍼파라미터 도출
3.1.1. K-NN
K-NN에 대한 하이퍼파라미터 튜닝 결과, 원데이터를 기반으로 예측한 상위 10개의 모델 모두 이웃의 수가 3이고, 이웃간 거리가 가까울수록 높은 가중치를 부여한 경우 보다 더 높은 정확도를 보였다. 그중 가장 높은 정확도를 보인 모델은 Ball tree 알고리즘과 유클리디안(Euclidean) 거리를 활용한 모델로 NSE는 0.990를 나타냈으나, Test data를 적용한 검증 결과 NSE는 오히려 0.940으로 소폭 감소하였다. 10개 모델을 대상으로 Test data를 적용한 검증 결과 Brute 알고리즘이 가장 높은 0.959의 NSE를 나타냈으며 이 경우 이웃의 수는 3, 거리에 따른 가중치 부여 및 맨하탄(Manhattan) 거리를 사용하였다. 하이퍼파라미터 튜닝과정에서 NSE가 높은 상위 5개의 모델은 모두 유클리디안 거리를 활용한 모델이었으나, Test data에 더 적합한 모델은 맨하탄 거리를 이용한 모델이었다(Table 2).
정규화를 통한 예측 시 원데이터를 통한 예측과는 상이하게 상위 10개의 모델 모두 하이퍼파라미터 튜닝 결과 유클리디안 거리를 사용하였을 때 NSE가 전반적으로 높게 나타났다. 그러나 Test data를 활용하여 NSE를 검토한 결과 가장 높은 NSE는 0.812로 확인되어 원데이터 예측 결과에 비해 정규화를 통한 예측 시 NSE가 낮은 것으로 나타났다(Table 3). 따라서, K-NN 알고리즘을 활용한 탁도의 예측에는 원데이터를 사용하는 것이 더 적합한 것으로 판단되었다.
3.1.2. SVM
SVM에 대한 하이퍼파라미터 튜닝 결과 원데이터를 기반으로한 예측 시 Kernel type이 Linear인 경우, 규제 매개변수와 감마 값에 관계없이 모든 결과가 동일하게 나타났다. 이를 통해 원데이터가 선형적으로 구분이 가능한 특성을 가지고 있음을 확인하였다. 또한, Test data를 활용한 예측에서도 가장 높은 NSE를 보여주어 모델의 검증 결과도 신뢰도가 높은 것으로 확인되었다. 한편, Radial basis function를 활용한 예측의 경우 모든 감마 값이 Scale로 설정되었을 때 NSE가 상대적으로 높았으며, 규제 매개변수의 값이 클수록 모델의 NSE가 더 높은 것으로 나타났다(Table 4).
정규화 데이터를 사용한 예측에서도 원데이터 예측과 동일하게 상위 10개의 모델 모두 Kernel type이 Linear일 때 NSE가 가장 높았으며, 감마 값은 예측 결과에 영향을 주지 않는 것으로 나타났다. 즉, 규제 매개변수가 1일 때 NSE가 가장 높았으며, Test data를 활용한 예측에서도 높은 NSE 값을 유지하였다. 규제 매개변수를 0.05로 낮추면 NSE가 규제매개변수가 1인 경우보다 더 증가하여 가장 적합한 모델로 확인되었다(Table 5).
결과적으로 SVM을 활용하여 원데이터 및 정규화를 통한 예측 시 Kernal type을 Linear로 설정하여 예측하는 것이 가장 적합한 것으로 판단되었고, 특히, 정규화 된 데이터의 예측에서 NSE가 근소하게 더 높게 나타나 정규화를 통한 예측을 수행하는 것이 가장 적합한 것으로 판단되었다.
3.1.3. 의사결정 나무
의사결정 나무에 대한 하이퍼파라미터 튜닝 결과 원데이터를 활용한 예측 시 NSE 상위 10개의 모델에서 노드 분할 방식이 Best일 때 가장 높았으며, 이와 동시에 분할을 위한 최소 샘플 수가 1, 리프 노드의 최소 샘플 수가 1 그리고 노드 분할 기준이 MAE인 경우 NSE가 전반적으로 높은 것으로 확인되었다. Test data를 활용한 예측에서는 하이퍼파라미터 튜닝 시의 경우보다 더 높은 NSE 값을 나타냈다(Table 4).
정규화 데이터를 사용한 예측에서도 원데이터 예측과 유사하게 리프 노드의 최소 샘플수가 1일 때 NSE가 가장 높은 것으로 확인되었다. 또한, 분할을 위한 최소 샘플 수는 2 또는 5, 노드 분할 기준이 Friedmans인 경우도 전반적으로 높은 NSE를 보여, 노드 분할 방식이 Random인 모델도 상위 10개 모델에 포함될 수 있음을 확인하였다. 정규화 데이터에 대한 예측에서도 하이퍼파라미터 튜닝 시의 결과보다 Test data를 활용한 경우의 NSE가 더 높은 것으로 나타났다(Table 5).
의사결정 나무의 경우 이론적으로 정규화 여부에 따라 예측 성능에 큰 영향을 미치지 않는 것으로 보고되었으며, 본 연구에서도 이와 마찬가지로 정규화 여부가 성능에 큰 영향을 미치지 않는 것으로 확인되었다[12]. 다른 알고리즘들과는 다르게 의사결정 나무의 경우 Test data의 예측이 하이퍼파라미터 튜닝 시 예측보다 NSE가 높은 것으로 확인되었다. 이는 Test data가 Train data보다 더 예측하기 쉬운 경우이거나, Train data의 값들이 Test data와 매우 유사하거나 분포가 일정하기 때문인 것으로 판단된다.
3.2. 알고리즘별 예측결과 비교
각 알고리즘 별 하이퍼파라미터 튜닝 후 도출된 상위 10개의 조합 중 Test data에 대한 예측 정확도가 가장 높았던 모델들의 결과를 검토한 결과 가장 낮은 NSE를 보인 정규화를 수행한 K-NN 알고리즘을 제외한 모든 알고리즘이 이전 연구 결과인 0.915보다 전반적으로 모두 높은 값을 보였다[7]. SVM과 의사결정 나무는 원데이터와 정규화 시 NSE의 차이는 미미한 것으로 나타나 자동측정항목 데이터를 통해 탁도 예측 시 원데이터의 변수에 따른 스케일의 차이는 예측결과에 큰 영향을 미치지 않았다. 따라서, 탁도 예측 시 정규화를 수행한 경우 정확도 및 오류발생 측면에서 무시할 정도로 미미하게 성능이 향상되어 매우 정교한 예측이 필요하지 않은 경우 정규화는 불필요한 것으로 판단되었다.
Test data를 사용하여 예측 시 가장 높은 NSE를 보인 것은 의사결정 나무로 원데이터와 정규화 데이터 예측 결과 모두 NSE, MSE, RMSE, MAE 측정치에서 가장 작은 오차를 보였으며, SVM 알고리즘 또한 매우 높은 예측 정확도를 보였다. 한편, K-NN알고리즘은 정규화된 데이터를 사용했을 대 오히려 성능이 저하되는 경향이 있었으나, 원데이터를 사용했을 때는 상대적으로 높은 NSE를 나타내었다. 각 알고리즘별 예측 결과를 종합적으로 검토한 결과 의사결정 나무 알고리즘이 탁도 예측에 가장 적합한 것으로 평가되었다(Table 5).
4. 결 론
본 연구에서는 머신러닝을 수행하여 비점오염물질측정망의 수질 자동측정 항목 중 수온, pH, EC, DO 데이터를 활용하여 탁도를 예측하고자 하였다. 이를 위하여 K-NN, SVM, 의사결정 나무 알고리즘을 통해 원데이터와 정규화 데이터를 학습하였으며, K-fold 교차 검증을 통해 하이퍼파라미터 튜닝을 수행한 후, 각 알고리즘 별 상위 10개의 하이퍼파라미터를 도출하였다. 이를 별도의 Test data를 활용하여 예측 정확도(i.e. NSE)를 검증하였으며, 이 과정에서 각 알고리즘의 과적합을 방지하고 일반화 성능도 평가하였다. 최종적으로 도출된 하이퍼파라미터를 바탕으로 각 모델의 예측 정확도를 분석한 결과 정규화 데이터를 통해 학습한 K-NN을 제외하고 기존의 연구결과보다 모두 향상된 예측 정확도를 보여 비점오염물질측정망의 탁도 예측에 머신러닝 알고리즘을 활용하는 것은 적합한 것으로 판단되었다.
SVM과 의사결정 나무의 경우 원데이터와 정규화 데이터의 예측 정확도의 차이가 미미하게 나타났으며, K-NN의 경우 원데이터의 예측 정확도는 높았으나, 정규화 데이터의 경우 상대적으로 예측 정확도가 낮게 나타났다. 따라서, 비점오염원 자동측정 항목 데이터를 통한 탁도 예측 시 수집된 원데이터의 스케일은 모델 학습에 큰 영향을 미치지 않는 것으로 여겨졌다.
본 연구에서 검토한 알고리즘 중 의사결정 나무 알고리즘이 탁도 예측 시 예측 정확도가 가장 높게 나타났고, 예측 오차인 MSE, RMSE, MAE 또한 다른 두 알고리즘에 비해 낮게 나타나 탁도 예측 시 의사결정나무 알고리즘이 최적임을 입증하였다. 그러나, 의사결정 나무 외에도 K-NN과 SVM 모두 상대적으로 높은 예측 정확도를 보여주어 향후 의사결정나무를 통한 탁도 예측 시 K-NN과 SVM을 통해 예측한 결과를 함께 활용한다면 더욱 정확도가 향상된 예측 결과를 확보할 수 있을 것으로 판단되었다.