전력사용량 예측 AI 경진대회

시계열 | SMAPE | 한국에너지공단 | 전력

  • moneyIcon Prize : 1,800만원
  • 2,548명 마감

 

[Analytics]동준이, 전력사용 요인 분석 및 모델링

2021.05.24 18:33 11,809 Views language

주어진 데이터를 통해 간 건물이 어떤 건물인지, 어떤 요인에 의해 전력이 사용되었는지 고민해보았고,

추후에 더 상세한 데이터가 주어졌을 때 정밀한 모델링에 활용할 수 있는 인사이트를 발견했습니다.

건물별로 다양한 모델을 fitting한 뒤, cv score가 높은 모델들을 선택하여 ensemble 하는 방법을 선택했습니다. 

Code
로그인이 필요합니다
0 / 1000
socool
2021.05.25 10:28

좋은 분석 감사합니다~

dybala
2021.05.25 14:08

유익한 고민들의 흔적들이 많은거 같네요! 덕분에 좋은 인사이트와 시간 절약할 수 있어서 감사합니다

월하마영
2021.05.25 23:00

고생 많이 하셨네요. 많은 도움이 되었습니다.

란초
2021.05.31 15:53

크게 보면서 좁혀가는게 인상적이네요 인사이트 고맙습니다. 

동준이
2021.05.31 22:15

감사합니다. 다음 업데이트에선 모델링 부분도 추가해보겠습니다!

datu
2021.06.02 12:30

삭제된 댓글입니다

하데스_Hades
2021.06.04 18:49

다양한 시각화 방법들을 연습해보는 데 큰 도움이 됐습니다. 열심히 고민하신 내용 공유해주셔서 감사합니다. 
한 가지 궁금한 게 있는데, 냉방도일('#CDH feature 추가' 부분)을 구하실 때 if i < 11: 을 하신 이유가 뭔가요?? 잘 이해가 되지 않아서 여쭙니다. 감사합니다! 

동준이
2021.06.04 22:10

i-12 ~ i-1 시점의 temperature 값들로 i 시점의 cdh를 구했습니다. 하지만 i 가 11보다 작으면, i-12시점의 temperature값이 존재하지 않습니다. 따라서, 해당 시점에서는 0 ~ i-1시점의 temperature값들로 i 시점의 cdh를 구한 것입니다:)

하데스_Hades
2021.06.07 09:57

그렇군요. 자세한 답변 감사드립니다! :) 

2400
2021.06.27 05:16

하루전 일조량 합에 대한 인사이트가 대단하네요! 정말 훌륭한 EDA에 인상 깊었습니다. 추론 코드도 대단합니다 ㄷㄷ. 
하이퍼파라미터는 Random Search로 찾으신건가요?
또, best model을 찾을때 써주신 코드가 직관적으로 이해가 안되는데, 어떤 의도로 작성하신 코드인지 알 수 있을까요?
Up Vote ! 

동준이
2021.06.27 15:06

부족한 실력인데 칭찬해주셔서 감사합니다..ㅎㅎ
질문에 대해 답변을 드리자면,
1. 하이퍼파라미터의 경우 8-fold cv score를 기준으로 grid search를 적용했습니다. earlystopping을 지원하는 catboost나 lgbm의 경우, fold별로 earlystopping을 적용해서 최적의 n_estimators를 정한 뒤, 최종적으로 평균치를 계산하였습니다.

2. good_models(pivot_q, threshold) 라는 함수에 대해 설명 드리겠습니다. 
한 건물 내에서 모델 별로 성능 차이가 크고, 건물별로 어떤 모델이 가장 좋은 성능을 내는지도 각기 다릅니다.
예를 들면, 17번 건물에선 elasticnet의 성능이 나쁘지만 36번 건물에선 elasticnet의 성능이 가장 좋죠.
따라서, 건물 별로 ensemble에 포함시킬 모델에 차이를 둬야 한다고 생각했습니다.  그 아이디어를 바탕으로 good_models 라는 함수를 만들었습니다.

예를 들어 k번 건물에서 catboost, lgbm, enet, svr, lassolars의 cv score가 각각 2.1, 2.3, 2.2, 2.4, 4.9 이라고 하겠습니다. 저는 이 모델 중 성능이 크게 나쁜 모델은 ensemble에서 제외하고자 했습니다.  
[2.1, 2.3, 2.2, 2.4, 4.9] 중 (pivot_q quantile에 해당하는 점수 * threshold) 보다 큰 cv score를 갖는 모델은 제외하는 것이죠. 
pivot_q = 0.5, threshold = 1.1일 경우엔, (2.3 * 1.1) 보다 큰 cv score를 갖는 모델(lassolars)은 ensemble에서 제외됩니다.

good models 라는 함수를 통해 건물별로 성능이 매우 나쁜 모델을 제외하는 과정을 자동화시킨 것이라고 보시면 되겠습니다!

2400
2021.06.28 05:32

ㄴ 와 감사합니다! 많이 배우고 갑니다.

동준이
2021.06.27 13:05

삭제된 댓글입니다

Arteddy
2022.07.12 12:11

삭제된 댓글입니다

멀린
2023.02.22 00:00

좋은 자료 잘봤습니다! 궁금한게 있는데 하나 여쭤봐도될까요!? 다름이 아니라 건물번호를 클러스터링 하셨는데, 요일변수와 시간변수, 그리고 전력사용량 변수만 이용해서 클러스터링했는지, 아니면 다른 독립변수 모두 이용해서 클러스터링을 진행했는지 궁금하네요