Skip to content

JihongPark-Moloco/Dacon_Solar-Power-Generation

Repository files navigation

DACON 태양광 발전량 예측 AI 경진대회

설명

DACON 태양광 발전향 예측 AI 경진대회 Private Score 기준 9위를 달성했습니다.
대회 링크: https://dacon.io/competitions/official/235680/overview/

파일이름 설명
Analysis_Output LSTM 출력 경향을 분석한 파일
Apply_Grid_Search Grid search를 이용한 xgboost 파라미터 튜닝
cnn_model CNN을 활용한 예측 모델
eda EDA 파일
lgbm_model LGBM을 활용한 예측 모델
LSTM_CNN_MLP_Stacking 3개의 모델을 staking한 모델
lstm_model LSTM을 활용한 예측 모델
MLP Multi Layer Perceptron을 이용한 예측 모델
seq2seq_model Seq2Seq를 이용한 예측 모델
Stat_Model statsmodels을 적용한 예측모델
xgb_model XGB를 활용한 예측 모델
XGB_try Loss Function Customizing을 통한 XGB예측모델
XGB+LGBM+MLP_Staking 3개의 모델을 staking한 모델

접근

EDA

image
EDA 결과 계절(분기)별로 발전량의 변화가 뚜렷하게 나타남을 관찰했습니다.
Test 데이터는 7일간의 데이터만 입력하기에 계절성을 제거하는 것이 성능에 유리하다고 판단했습니다.

image
EDA를 통해 계절성을 제거하였으며 성능 향상을 이루었습니다.

image
또한 Feature Engineering을 통해 새롭게 생성한 주당 최대 발전량과 날씨 요소별 발전량을 나타냈습니다.
그래프를 통해 최대 발전량과 날씨에 따라 발전량 양상이 다르게 나타나며 두 피쳐가 유의미함을 확인했습니다.

Feature Engineering

EDA와 레퍼런스를 통해 다음의 추가적인 피쳐를 생성했습니다.

  • max_week_*
    각 피쳐들의 주 단위 최대 값입니다.
    계절과 분기에 따른 오차를 보정하는데 이용합니다.

  • peak_diff
    주 단위 최대 발전량에서 매 타임마다 발전량의 차이를 나타냅니다.
    해당 주차에서 발전할것으로 기대되는 최대 발전량에 못미친 정도를 나타냅니다.

  • GHI
    ref: https://doi.org/10.8080/1020150067066
    수평면 전일사량(GHI)는 DHI와 DNI과 천정각을 통해 추출된 일사량 누락 데이터입니다.

  • RDHNI
    DHI와 DNI의 덧셈의 제곱근으로 TARGET의 값을 잘 표현합니다.

  • Lower_Cloud, Middle_Cloud
    ref: http://koreascience.or.kr/article/JAKO201303840303693.page
    운량은 DHI와 DNI에 직접적인 영향을 주는 지표입니다. 본 지표의 중층운량과 하층운량은 AFWA는 미국 대기과학연구소(NCAR)에서 개발한 중규모수치모델인 MM5(methodbuiltinthefifth-generationMesoscaleModel)의 후처리 패키지 중 하나인 그래픽소프트웨어Grads에서 구현된 알고리즘으로 산출하였다.

  • DD
    ref: https://nvlpubs.nist.gov/nistpubs/jres/74c/jresv74cn3-4p117_a1b.pdf
    기상학에서 자주 사용되는 지표로 공기가 포화되어 수증기가 응결할 때의 온도를 말합니다. 이는 기상의 상태를 표현하는 지표로 사용할 수 있습니다.

PreProcess

3년치의 Train 데이터를 활용하기에 각 년도별로 데이터를 나누어 train/valid set을 나누었습니다.
이후 세 모델의 평균으로 결과를 구해 과적합을 줄였습니다.

Model Number Train Test
Model 1 year_1, year_2 year_3
Model 2 year_1, year_3 year_2
Model 3 year_2, year_3 year_1

Model

image
7일간의 데이터인 336 Time-step을 단일 모델에 입력하면 긴 step과 반복되는 값 (밤에는 발전량이 0)으로 데이터 소실이 클것으로 예상했습니다.
하루마다 다른 GRU 모델에 입력하고 출력 결과를 이어붙여 다시 LSTM에 입력하는 것으로 성능 향상을 이루었습니다.

Result

image
quantile마다 다른 스케일로 의도한대로 값을 예측할 수 있었습니다.
public: 1.80359 private: 2.01757 를 기록하며 private 기준 9위를 달성했습니다.


Author

About

AI Competition to Predict Solar Power Generation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published