2022년 1월 1일 토요일

가스공급량 수요예측 모델개발

 

2013년부터 2018년 가스공급량을 기준으로 가스 수요량을 예측하는 모델 경연 대회가 있었습니다

데이터는 날짜별/시간별 가스 공급량입니다. 여기에 구분별로 나누어져 있는데 아마도 가스 공급 기지를 뜻하는 것 같습니다. 2018년도 데이터를 구분을 연속해서 그리면 아래 그림이 됩니다.  구분A, B, C 등으로 나누는데 구분에 따라 가스 공급량 패턴이 다릅니다.


이 대회의 평가 기준은 NMAE(Normalized Mean Absolute Error)입니다. 분자는 예상값과 실제값의 차이 절대값이고 분모는 실제값입니다. 코드 공유 게시판 에 나온 프로그램은 metric으로 MAE (Mean Absolute Error)를 사용했습니다.  MAE는 예상값과 실제값 차이의 절대 평균입니다.  NAME (파이썬 코드에서는 mape)에 적용하면 결과가 0.5가 넘습니다.  오류가 반이 넘는다는 의미입니다. 이렇게 된 까닭은 구분” C에서 거의 zero인 공급량이 있기 때문입니다.  예측 모델에 따라 차이가 있지만 아래 그림에서 파란색은 가스 공급량이고 오렌지색은 공급량과 예측값의 오차입니다.




중간(계절은 여름)에 공급량이 거의 제로인 때가 있는데 예측량은 다른 때와 비슷하게 나와서 오류가 큽니다. 이 오차를 작은 공급량으로 나누면 50을 넘겨서 전체 NMAE 값을 크게 올리게 됩니다.  이런 특성은 NMAE의 약점이기도 합니다만 리더보드에 나오는 상위 20권 이내에 랭크된 예측 모델은 NMAE값이 0.1이하로 훌륭하게 이런 어려운 점을 극복했습니다. 제가 테스트한 모델의 최저는 0.15876이었습니다.  코드 공유에 나온 프로그램을 기반으로 구성했는데  프로그램은 깃허브에 있습니다.

 

학습할 특징(feature)을 달리한 결과표입니다. former는 한시간전 공급량입니다.  거의 제로로 떨어지는 공급량 추이를 반영하기 위하여 만든 feature인데 없을 때 비하면 0.17172로 좋아졌음을 볼 수 있습니다. 달력에서 휴일(holiday)를 찾아 feature로 추가했는데 오히려 0.18137로 약간 떨어졌습니다.  대신 기온을 추가했더니 0.15875으로 나아졌습니다. 여기서 기온은 전국 평균입니다.  기상청 data.kma.go.kr에서 구했습니다.  기온 외에 풍속, 강수량, 습도를 feature로 넣었는데 후퇴하는 결과를 보였습니다.


가스 수요량 예측 모델을 통해 가스값 안정화에 도움이 되었으면 하는 바램입니다.


댓글 없음:

댓글 쓰기