본 논문에서는 DACON에서 제공하는 데이터셋을 기반으로 한 효과적인 농산물 가격 예측 모델을 제안한다. 이 모델은 XGBoost와 CatBoost 이며 Gradient Boosting 계열의 알고리즘으로써 기존의 Logistic Regression과 Random Forest보다 평균정확도 및 수행시간이 우수하다. 이러한 장점들을 기반으로 농산물의 이전 가격들을 기반으로 1주, 2주, 4주뒤 가격을 예측하는 머신러닝 모델을 설계한다. XGBoost 모델은 회귀 방식의 모델링인 XGBoost Regressor 라이브러리를 사용하여 하이퍼 파라미터를 조정함으로써 가장 우수한 성능을 도출할 수 있다. CatBoost 모델은 CatBoost Regressor를 사용하여 모델을 구현한다. 구현한 모델은 DACON에서 제공하는 API를 이용하여 검증하고, 모델 별 성능평가를 실시한다. XGBoost는 자체적인 과적합 규제를 진행하기 때문에 적은 데이터셋에도 불구하고 우수한 성능을 도출하지만, 학습시간, 예측시간 등 시간적인 성능 면에서는 LGBM보다 성능이 낮다는 것을 알 수 있었다.
본 논문에서는 DACON에서 제공하는 데이터셋을 기반으로 한 효과적인 농산물 가격 예측 모델을 제안한다. 이 모델은 XGBoost와 CatBoost 이며 Gradient Boosting 계열의 알고리즘으로써 기존의 Logistic Regression과 Random Forest보다 평균정확도 및 수행시간이 우수하다. 이러한 장점들을 기반으로 농산물의 이전 가격들을 기반으로 1주, 2주, 4주뒤 가격을 예측하는 머신러닝 모델을 설계한다. XGBoost 모델은 회귀 방식의 모델링인 XGBoost Regressor 라이브러리를 사용하여 하이퍼 파라미터를 조정함으로써 가장 우수한 성능을 도출할 수 있다. CatBoost 모델은 CatBoost Regressor를 사용하여 모델을 구현한다. 구현한 모델은 DACON에서 제공하는 API를 이용하여 검증하고, 모델 별 성능평가를 실시한다. XGBoost는 자체적인 과적합 규제를 진행하기 때문에 적은 데이터셋에도 불구하고 우수한 성능을 도출하지만, 학습시간, 예측시간 등 시간적인 성능 면에서는 LGBM보다 성능이 낮다는 것을 알 수 있었다.
In this paper, we propose an efficient agricultural products price prediction model based on dataset which provided in DACON. This model is XGBoost and CatBoost, and as an algorithm of the Gradient Boosting series, the average accuracy and execution time are superior to the existing Logistic Regress...
In this paper, we propose an efficient agricultural products price prediction model based on dataset which provided in DACON. This model is XGBoost and CatBoost, and as an algorithm of the Gradient Boosting series, the average accuracy and execution time are superior to the existing Logistic Regression and Random Forest. Based on these advantages, we design a machine learning model that predicts prices 1 week, 2 weeks, and 4 weeks from the previous prices of agricultural products. The XGBoost model can derive the best performance by adjusting hyperparameters using the XGBoost Regressor library, which is a regression model. The implemented model is verified using the API provided by DACON, and performance evaluation is performed for each model. Because XGBoost conducts its own overfitting regulation, it derives excellent performance despite a small dataset, but it was found that the performance was lower than LGBM in terms of temporal performance such as learning time and prediction time.
In this paper, we propose an efficient agricultural products price prediction model based on dataset which provided in DACON. This model is XGBoost and CatBoost, and as an algorithm of the Gradient Boosting series, the average accuracy and execution time are superior to the existing Logistic Regression and Random Forest. Based on these advantages, we design a machine learning model that predicts prices 1 week, 2 weeks, and 4 weeks from the previous prices of agricultural products. The XGBoost model can derive the best performance by adjusting hyperparameters using the XGBoost Regressor library, which is a regression model. The implemented model is verified using the API provided by DACON, and performance evaluation is performed for each model. Because XGBoost conducts its own overfitting regulation, it derives excellent performance despite a small dataset, but it was found that the performance was lower than LGBM in terms of temporal performance such as learning time and prediction time.
가격에 영향을 주는 요인들을 과거의 데이터를 통해 미리 파악하는 예측하는 모델을 만든다면 농산물 공급과 수입량 등 가격변동에 따른 공급량을 사전에 조절한다면 농산물 가격을 안정시킬 수 있을 것이다. 따라서 본 논문에서는 농산물 가격 예측 모델을 개발하고, 여러 알고리즘을 통하여 성능을 평가하고자 한다. 또한, 개발한 농산물 가격 예측 모델로 Kaggle ML competition에 참여한다.
제안 방법
Gradient Boosting 기반 XGBoost, LightGBM CatBoost 중 Baseline 2에서 사용된 LGBM을 제외한 XGBoost와 CatBoost에 관한 성능 실험을 진행하며, Baseline 2의 LightGBM 모델 대신 XGBoost를 적용해 실험을 진행한다. Baseline 2는 품목, 품종별 개별 모델을 학습시키는 방식을 사용하기 때문에 분류 모델인 XGBoost Classification 대신 XGboost Regression 회귀 모델을 사용하기 위해 XGBoost의 Scikit-Learn Wrapper API인 XGBRegressor를 사용한다.
GBM의 과적합 문제를 해결하면서 기존의 GBM 계열 알고리즘(XGBoost, LGBM)보다 학습속도를 개선하는 장점을 앞세워 개발되었다[11]. Gradient Boosting 알고리즘의 구현에 존재하는 Target Leakage로 인해 발생하는 Prediction Shift에 대응하기 위해 순서형 부스팅과 범주형 Feature를 처리하기 위해 제안되었다. 또한, CatBoost는 기존의 GBM 계열 알고리즘의 트리 구조와는 다르게 대칭 트리 형성 구조를 갖는다.
본 논문에서는 DACON의 2021 농산물 가격 예측 경진 대회에서 제공하는 데이터셋을 기반으로 Baseline의 Attention이 적용된 Seq2Seq, LightGBM과 기존의 예측 모델의 성능을 높인 XGBoost, CatBoost를 적용한 농산물 가격 예측 모델을 제안하였다. 본 논문에서 사용한 LGBM, XGBoost, CatBoost 모두 트리 방식의 학습 알고리즘을 사용함으로써 큰 성능의 차이는 보여주지 못하였지만, 하이퍼 파라미터의 설정을 통해 같은 데이터셋이지만 예측 성능의 차이가 생길 수 있다는 결론을 도출하였다.
하지만 데이터 크기가 작은 데이터셋의 경우 LGB의 평균 정확도는 떨어진다[7]. 이러한 빠른 훈련 시간 (Training Time)과 정확도(Accuracy)를 갖춘 부스팅 알고리즘들의 특성을 이용하여 DACON 농산물 가격 예측 모델을 개발하고, 성능을 비교 분석한다.
대상 데이터
표 2의 Training 데이터셋은 2016년부터 2020년까지의 농산물의 가격 데이터이다. Testing 데이터셋은 2020년 9월부터 11월까지의 데이터이다.
CatBoost는 결정 트리 생성 시 좌우대칭 트리로 학습 모델을 생성한다. 본 논문에서 사용된 데이터셋은 CatBoost 가 사용되는 범주형 Feature 데이터셋이 아닌 수치형 데이터셋을 사용하여 CatBoost가 가지는 장점을 활용한 성능 평가를 하지 못하여 CatBoost Regressor를 활용한다.
본 논문에서는 DACON에서 제공하는 Baseline인 Seq2Seq, LGBM와 XGBoost, CatBoost를 사용하여 모델을 설계하고 구현한다. 본 논문에서 사용한 데이터셋은 수치형 데이터셋으로 CatBoost의 범주형 변수와는 다르지만, CatBoost의 결정 트리 구조인 대칭 트리 형성을 통한 성능 향상을 기대한다.
데이터처리
Baseline 2에서 사용된 eval_metric으로 사용된 at_name을 사용하지 않고 CatBoost Regressor의 eval_set만을 사용하여 학습을 진행하였다. eval_metric 으로는 추정값 또는 모델이 예측한 값과 실제 환경에서 관찰되는 값의 차이를 다룰 때 사용되는 RMSE(Root Mean Square Error)를 사용하였다. XGBoost와 동일하게 n_estimators와 max_depth의 수치를 변경하며 3번의 실험을 진행하였으며, gradient step을 줄이는데 사용하는 learning_rate를 조절한다.
또한, DACON에서 제공하는 Baseline 1은 어텐션이 적용된 Seq2Seq를 적용하여 평가점수를 측정하고, Baseline 2는 LightGBM을 적용하여 평가점수를 측정한다. 트리 구조로 학습을 진행하여 모델을 생성하는 Boosting 방식의 알고리즘을 적용하여 Baseline에서 적용되는 시계열 학습 알고리즘뿐만 아니라 Boosting 방식의 모델들을 비교하고자 한다.
이론/모형
Gradient Boosting 기반 XGBoost, LightGBM CatBoost 중 Baseline 2에서 사용된 LGBM을 제외한 XGBoost와 CatBoost에 관한 성능 실험을 진행하며, Baseline 2의 LightGBM 모델 대신 XGBoost를 적용해 실험을 진행한다. Baseline 2는 품목, 품종별 개별 모델을 학습시키는 방식을 사용하기 때문에 분류 모델인 XGBoost Classification 대신 XGboost Regression 회귀 모델을 사용하기 위해 XGBoost의 Scikit-Learn Wrapper API인 XGBRegressor를 사용한다. 모델의 학습 데이터 전처리는 Baseline 2의 전처리 과정을 사용하여 개별 모델의 학습을 진행하고, 학습의 지표가 되는 evaluation metric은 Baseline 2의 custom metric을 사용하여 XGBoost의 학습을 진행한다.
XGBoost와 동일하게 n_estimators와 max_depth의 수치를 변경하며 3번의 실험을 진행하였으며, gradient step을 줄이는데 사용하는 learning_rate를 조절한다. CatBoost의 공식문서를 참조하여 튜닝을 진행한다[14]. 이전 XGBoost 실험과 동일하게 submission_score를 산정한다.
XGBoost는 결정 트리를 생성할 때 CART(Classification And Regression Trees)라 불리는 앙상블 모델을 사용한다. 이후 Tree 부스팅을 사용하여, Leaf 노드 하나의 결정 값을 가지는 결정 트리와 달리 CART는 모든 Leaf 노드가 최종 스코어와 연관되어 있다.
csv 를 사용한다. XGBoost의 하이퍼 파라미터는 XGBoost의 공식문서를 참조하여 튜닝을 진행한다[13]. XGBoost의 트리 구조 알고리즘 hist, 과적합을 방지하기 위한 스텝 사이즈 eta, 무작위로 트리 학습 중 샘플링 정도를 정하는 subsample과 colsample_by_tree, 부스팅 반복 정도인 num_boost_round는 같게 실험을 진행한다.
이 방법을 통해 잔차를 줄여나가며 예측 모형을 만들게 되며, 경사하강을 통해 다음 모델을 생성하기 때문에 Gradient Boosting Algorithm이라 한다. 또한 예측 모형에서 발생하는 과적합(Over-Fitting)을 예방하기 위해 Regularization을 사용한다.
따라서 본 논문에서는 농산물 가격 예측 모델을 개발하고, 여러 알고리즘을 통하여 성능을 평가하고자 한다. 또한, 개발한 농산물 가격 예측 모델로 Kaggle ML competition에 참여한다.
성능/효과
본 논문에서는 DACON의 2021 농산물 가격 예측 경진 대회에서 제공하는 데이터셋을 기반으로 Baseline의 Attention이 적용된 Seq2Seq, LightGBM과 기존의 예측 모델의 성능을 높인 XGBoost, CatBoost를 적용한 농산물 가격 예측 모델을 제안하였다. 본 논문에서 사용한 LGBM, XGBoost, CatBoost 모두 트리 방식의 학습 알고리즘을 사용함으로써 큰 성능의 차이는 보여주지 못하였지만, 하이퍼 파라미터의 설정을 통해 같은 데이터셋이지만 예측 성능의 차이가 생길 수 있다는 결론을 도출하였다. 이러한 결과를 통하여 농산물 가격 예측 모델을 학습시키기 위한 데이터셋의 양과 데이터셋의 형식 등에 따라 모델 선정 기준이 달라진다.
22994이다. 이 결과로 미루어 보아 Kaggle ML competition에서 상위권을 차지하는 GBM 계열 알고리즘들의 성능이 우수한 것을 확인할 수 있다.
본 논문에서 사용한 LGBM, XGBoost, CatBoost 모두 트리 방식의 학습 알고리즘을 사용함으로써 큰 성능의 차이는 보여주지 못하였지만, 하이퍼 파라미터의 설정을 통해 같은 데이터셋이지만 예측 성능의 차이가 생길 수 있다는 결론을 도출하였다. 이러한 결과를 통하여 농산물 가격 예측 모델을 학습시키기 위한 데이터셋의 양과 데이터셋의 형식 등에 따라 모델 선정 기준이 달라진다. 또한 학습을 시키기 위한 전처리 과정에서 각 feature별 모델링인지, 하나의 모델에 관한 모델링인지에 따라 어떤 알고리즘을 선택해야 하는지 고려해야 한다.
후속연구
이러한 결과를 통하여 농산물 가격 예측 모델을 학습시키기 위한 데이터셋의 양과 데이터셋의 형식 등에 따라 모델 선정 기준이 달라진다. 또한 학습을 시키기 위한 전처리 과정에서 각 feature별 모델링인지, 하나의 모델에 관한 모델링인지에 따라 어떤 알고리즘을 선택해야 하는지 고려해야 한다. 본 논문의 실험은 GPU의 사용 없이 Colab의 CPU만 사용하였기에 학습 및 예측에 오랜 시간이 소요되어 다양한 결과를 도출하지 못하였다.
또한 학습을 시키기 위한 전처리 과정에서 각 feature별 모델링인지, 하나의 모델에 관한 모델링인지에 따라 어떤 알고리즘을 선택해야 하는지 고려해야 한다. 본 논문의 실험은 GPU의 사용 없이 Colab의 CPU만 사용하였기에 학습 및 예측에 오랜 시간이 소요되어 다양한 결과를 도출하지 못하였다. 향후 실험에서는 GPU의 사용과 좋은 성능의 리소스를 활용한 추가적인 실험으로 성능을 비교하고자 한다.
본 논문의 실험은 GPU의 사용 없이 Colab의 CPU만 사용하였기에 학습 및 예측에 오랜 시간이 소요되어 다양한 결과를 도출하지 못하였다. 향후 실험에서는 GPU의 사용과 좋은 성능의 리소스를 활용한 추가적인 실험으로 성능을 비교하고자 한다.
M. Fafchamps and B. Minten, "Impact of SMS-Based Agricultural Information on Indian Farmers," In the World Bank Economic Review, Vol. 26, Issue.3, pp. 383-414, Nov. 2012 https://doi.org/10.1093/wber/lhr056
Ke, G., Meng, Q., Finley, T., Wang, T., Chen, W., Ma, W., Ye, Q., & Liu, T., "LightGBM: A Highly Efficient Gradient Boosting Decision Tree," Proceedings of the 31st Conference on Neural Information Processing Systems (NIPS 2017)
Dorogush, A.V., Gulin, A., Gusev, G., Kazeev, N., Ostroumova, L., & Vorobev, A., "Fighting biases with dynamic boosting," June 2017, https://arxiv.org/pdf/1706.09516v1.pdf
Chen, T., & Guestrin, C., "XGBoost: A Scalable Tree Boosting System," Proceedings of the 22th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, June 2016, https://arxiv.org/abs/1603.02754
※ AI-Helper는 부적절한 답변을 할 수 있습니다.