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

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

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

 

[Analytics] 234팀, 건물별로 전력사용량 분석하기

2021.06.14 14:28 6,454 Views language

안녕하세요 234팀입니다.
저희는 건물을 중심으로, 전력사용량 분석 및 예측을 진행하였습니다.
대회 종료 전까지 내용 보충하여 조금씩 업데이트할 예정입니다! 
감사합니다:)

Code
로그인이 필요합니다
0 / 1000
Hello_1
2021.06.14 15:01

좋은 자료 감사합니다.

현소윤
2021.06.14 15:18

멋지네요^^

세으니
2021.06.14 15:27

👍🏼👍🏼👍🏼

워니34
2021.06.14 15:37

유용한 자료네요 :)

JDJ
2021.06.16 13:19

model.fit부터 의미있는 변수들이 전부 nan이 나오는 현상을 발견했습니다.

1번 건물을 대표로 돌리셨는데, 
최종 시각화에서 train 기존은 잘 나오지만 train 예측과 test 예측이 나오지 않은 현상을 발견했습니다.
해서 60개의 각 건물들을 모델을 따로 짜는 for문에서 
num = 1로 잡고 어디서 문제가 있는지 추적했는데

모델을 fit하고 나서 history에서부터 nan값이 출력됨을 확인할 수 있었고 
그 후의 의미있는 변수들 ex/ y_pred_future 같은 변수들에도 전부 nan 값이 출력됨을 확인할 수 있었습니다.

최소한 마지막 시각화처럼 
sns.lineplot(x=train_dates, y=predict_train, alpha=0.5, label='train예측')
sns.lineplot(x=test_dates, y=y_pred_future, label='test예측')

이게 그림처럼 나와줬으면 했는데, 아무것도 뜨지 않으니 맥이 빠지더군요...

올리신 코드를 그대로 돌려보면서, 제가 잘못 따라 쳤는지 검증도 했는데
올리신 코드를 다운로드 해서 고대로 돌려도 같은 현상이 벌어져서 질문글 남깁니다.  

절비
2021.06.17 13:19

안녕하세요. 코드를 다시 검토한 결과, 모델링 전에 아래의 코드가 누락되어 발생한 문제로 보입니다.
train_ = train.drop(columns=['month', 'day', 'hour', 'weekday'])

말씀해주신 부분은 train_을 다시 지정해주지 않아 test 결측값을 생성할 때 만든 train_이 모델링 시 사용되어 nan값이 포함된 변수가 num=1을 포함한 일부 num의 모델링에 포함되어 학습이 제대로 되지 않은 것 같습니다.

코드 수정하여 업로드하였습니다.
좋은 질문 감사드립니다:)

콤기리
2021.06.21 11:29

코드공부하려고 필사를 해봤는데  모델돌리는부분에서
NotImplementedError: Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array.
이러한 에러가 뜨는데 어떻게 해결할수 있을까요?

절비
2021.06.21 14:16

찾아보니 numpy 버전 변경을 하여 말씀하신 에러를 해결한 케이스가 있습니다. (https://beausty23.tistory.com/137)
참고로 저는 1.19.2 버전에서 코드 실행하였습니다.

ㅇ지훈
2021.06.21 15:32

forecast = model.predict(test[-n_future:]) 라인에서 Error when checking input: expected lstm_input to have 3 dimensions 에러가 납니다 ㅠㅠ 코드 그대로 한번 돌려보려고 다운받아서 그대로 실행시켰는데... 머선일일까요.. 

절비
2021.06.25 17:19

test 대신 train_X를 넣어 다시 실행해보시길 바랍니다!

Youl
2021.06.24 18:43

 forecast = model.predict(test[-n_future:])
이 부분에서 Failed to convert a NumPy array to a Tensor (Unsupported object type int). 에러가 발생하는데 어떻게 해결해야할까요?
astype으로 np.int로 바꿔도 해결이 안되더라구요

절비
2021.06.25 17:19

test 대신 train_X를 넣어 다시 실행해보시길 바랍니다!