AI프렌즈 공공 데이터 활용 전력수요 및 SMP 예측 AI 경진대회

알고리즘 | 정형 | 회귀 | 에너지 | WRMSSE

  • moneyIcon Prize : 총 250만원
  • 620명 마감

*20200508 19:50 수정: 모델 조건 변경


※ 모델 조건

1) 예측 모델은 input 값으로 지점 최소 1개 ~ 최대 5개를 사용해야 하며, 핵심 기상 속성은 지점별 최대 7개를 사용하여야 함.

(핵심 기상 속성: weather.csv에서 제공 되는 기상 속성)

2) 같은 기상 속성의 lag 변수는 중복 허용.

ex. t-1시점의 기온과 t-2시점의 기온을 사용하는 것은 속성 1개로 취급

3) 핵심 기상 속성 (지점별 최대 7개)을 선택 후, 해당 속성들로 부터 파생된 기상 속성은 개수 제한 없음.

4) 해당 파생 기상 속성을 사용한 이유 및 활용에 대해서 예비 수상자 코드 제출 시 명확히 제시되어야 함.

5) 그 외 기타 속성 (SMP, 전력수급실적, 휴무일 여부, 관광객 수, 등등)은 개수 제한 없음.


1. 평가

평가 지표는 Weighted Root Mean Squared Scaled Error (WRMSSE)입니다.

(RMSSE란?: Mean Absolute Scaled Error의 변형된 형태 입니다. https://en.wikipedia.org/wiki/Mean_absolute_scaled_error)

## axis = 0
## weight = [0.1, 0.1, 0.2, 0.6] (smp_max, smp_min, smp_mean, supply에 대한 가중치)

import numpy as np

def rmsse(y_true, y_pred, y_hist, axis = None, weight = None):
    '''
    y_true: 실제 값 
    y_pred: 예측 값
    y_hist: 과거 값 (public LB는 v1 기간으로 계산, private LB는 v2 기간으로 계산)
    '''
    
    y_true, y_pred, y_hist = np.array(y_true), np.array(y_pred), np.array(y_hist)
    
    h, n = len(y_true), len(y_hist)


    numerator = np.sum((y_true - y_pred)**2, axis = axis)
    
    denominator = 1/(n-1)*np.sum((y_hist[1:] - y_hist[:-1])**2, axis = axis)
    
    msse = 1/h * numerator/denominator
    
    rmsse = msse ** 0.5
    
    score = rmsse
    
    if weight is not None:
        
        score = rmsse.dot(weight)
    
    return score

1) 가채점 순위 (Public Score) : 2020.02.07 ~ 2020.03.05 기간의 전력수급실적, SMP 데이터로 채점합니다. 

2) 최종 순위 (Private Score) : 2020.05.25 ~ 2020.06.21 기간의 전력수급실적, SMP 데이터로 채점합니다.

3) 최종 순위는 선택된 파일 중에서 채점되므로, 참가자는 제출 창에서 자신이 최종적으로 채점 받고 싶은 파일을 선택해야 합니다.

4) 2020.06.22 10:00 리더보드 운영 종료 이후 Private Score 랭킹이 가장 높은 참가자 5팀은 2020.06.30 23:59 까지 양식에 맞는 코드와 함께 코드 내용을 설명하는 PPT를 제출합니다. (대회 종료 후 dacon@dacon.io를 통해 안내드릴 예정입니다.)

5) 대회 직후 공개되는 Private Score 랭킹은 최종 순위가 아니며 코드 검증 후 최종 수상자가 결정 됩니다.

6) 최종 수상자는 시상식 참여 또는 솔루션 및 코드 설명 영상 제출 중 최소 하나를 택하셔야 합니다.


2. 외부 데이터

본 대회에서는 외부 데이터 사용이 가능합니다.

1) 외부 데이터는 사용에 법적인 제약이 없어야 합니다.

2) 다운로드를 받은 경우 외부데이터 대한 링크를 명시해야 합니다.

3) 크롤링을 실시한 경우 크롤링 코드를 제출해야 합니다.

4) data leakage 문제가 없어야 합니다. 최종적으로 2020.05.18이전에 생성된 데이터만 활용 가능합니다.


3. 참가 방법

- 개인 참가 방법 : 팀 신청 없이, 자유롭게 제출 창에서 제출 가능  

- 팀 참가 방법 : 팀 배너에서 가능, 상세 내용은 팀 배너에서 팀 병합 정책을 확인 부탁드립니다.

* 하나의 대회에는 하나의 팀으로만 등록이 가능합니다.

* 팀의 수상 요건 충족 시 팀의 대표가 수상하게 됩니다.


4. 코드

1) 입상자는 코드 제출 필수. 제출 코드는 예측 결과를 리더보드 점수로 복원할 수 있어야 함

2) 코드 제출시 확장자가 R user는 R or .rmd. Python user는 .py or .ipynb

3) 코드에 ‘/data’ 데이터 입/출력 경로 포함 제출

4) 전체 프로세스를 일목요연하게 정리하여 주석을 포함하여 하나의 파일로 제출

5) 모든 코드는 오류 없이 실행되어야 함(라이브러리 로딩 코드 포함되어야 함).

6) 코드와 주석의 인코딩은 모두 UTF-8을 사용하여야 함

7) 코드 제출 시 데이콘에서 안내한 양식에 맞추어 제출하여야 함


5. 토론(질문)

해당 대회에서는 대회 운영 및 데이터 이상에 관련된 질문 외에는 답변 드리지 않을 예정입니다. 결측치 처리 방법, 모델 구성 방법 등등 대회 운영 및 데이터 이상 외 질문은 토론 페이지를 통해 자유롭게 토론해 주시기 바랍니다.

* 데이콘 답변을 요청하는 경우 토론 제목에 [DACON 답변 요청] 문구를 넣어 질문을 올려 주시기바랍니다. 예) [DACON 답변 요청] 시상식은 언제 열리나요?

Main Event Schedule

  1. 05.01

    대회 시작

  2. 05.15

    팀 병합 마감

  3. 05.19

    2차 훈련 세트 공개

  4. 05.25

    17:59 제출 마감

  5. 05.26

    Chrono 리더보드 시작

  1. 06.22

    Chrono 리더보드 종료

  2. 06.30

    코드 제출 마감 및 평가

  3. 07.08

    최종 수상자 발표

*20200508 19:50 수정: 모델 조건 변경


※ 모델 조건

1) 예측 모델은 input 값으로 지점 최소 1개 ~ 최대 5개를 사용해야 하며, 핵심 기상 속성은 지점별 최대 7개를 사용하여야 함.

(핵심 기상 속성: weather.csv에서 제공 되는 기상 속성)

2) 같은 기상 속성의 lag 변수는 중복 허용.

ex. t-1시점의 기온과 t-2시점의 기온을 사용하는 것은 속성 1개로 취급

3) 핵심 기상 속성 (지점별 최대 7개)을 선택 후, 해당 속성들로 부터 파생된 기상 속성은 개수 제한 없음.

4) 해당 파생 기상 속성을 사용한 이유 및 활용에 대해서 예비 수상자 코드 제출 시 명확히 제시되어야 함.

5) 그 외 기타 속성 (SMP, 전력수급실적, 휴무일 여부, 관광객 수, 등등)은 개수 제한 없음.


1. 평가

평가 지표는 Weighted Root Mean Squared Scaled Error (WRMSSE)입니다.

(RMSSE란?: Mean Absolute Scaled Error의 변형된 형태 입니다. https://en.wikipedia.org/wiki/Mean_absolute_scaled_error)

## axis = 0
## weight = [0.1, 0.1, 0.2, 0.6] (smp_max, smp_min, smp_mean, supply에 대한 가중치)

import numpy as np

def rmsse(y_true, y_pred, y_hist, axis = None, weight = None):
    '''
    y_true: 실제 값 
    y_pred: 예측 값
    y_hist: 과거 값 (public LB는 v1 기간으로 계산, private LB는 v2 기간으로 계산)
    '''
    
    y_true, y_pred, y_hist = np.array(y_true), np.array(y_pred), np.array(y_hist)
    
    h, n = len(y_true), len(y_hist)


    numerator = np.sum((y_true - y_pred)**2, axis = axis)
    
    denominator = 1/(n-1)*np.sum((y_hist[1:] - y_hist[:-1])**2, axis = axis)
    
    msse = 1/h * numerator/denominator
    
    rmsse = msse ** 0.5
    
    score = rmsse
    
    if weight is not None:
        
        score = rmsse.dot(weight)
    
    return score

1) 가채점 순위 (Public Score) : 2020.02.07 ~ 2020.03.05 기간의 전력수급실적, SMP 데이터로 채점합니다. 

2) 최종 순위 (Private Score) : 2020.05.25 ~ 2020.06.21 기간의 전력수급실적, SMP 데이터로 채점합니다.

3) 최종 순위는 선택된 파일 중에서 채점되므로, 참가자는 제출 창에서 자신이 최종적으로 채점 받고 싶은 파일을 선택해야 합니다.

4) 2020.06.22 10:00 리더보드 운영 종료 이후 Private Score 랭킹이 가장 높은 참가자 5팀은 2020.06.30 23:59 까지 양식에 맞는 코드와 함께 코드 내용을 설명하는 PPT를 제출합니다. (대회 종료 후 dacon@dacon.io를 통해 안내드릴 예정입니다.)

5) 대회 직후 공개되는 Private Score 랭킹은 최종 순위가 아니며 코드 검증 후 최종 수상자가 결정 됩니다.

6) 최종 수상자는 시상식 참여 또는 솔루션 및 코드 설명 영상 제출 중 최소 하나를 택하셔야 합니다.


2. 외부 데이터

본 대회에서는 외부 데이터 사용이 가능합니다.

1) 외부 데이터는 사용에 법적인 제약이 없어야 합니다.

2) 다운로드를 받은 경우 외부데이터 대한 링크를 명시해야 합니다.

3) 크롤링을 실시한 경우 크롤링 코드를 제출해야 합니다.

4) data leakage 문제가 없어야 합니다. 최종적으로 2020.05.18이전에 생성된 데이터만 활용 가능합니다.


3. 참가 방법

- 개인 참가 방법 : 팀 신청 없이, 자유롭게 제출 창에서 제출 가능  

- 팀 참가 방법 : 팀 배너에서 가능, 상세 내용은 팀 배너에서 팀 병합 정책을 확인 부탁드립니다.

* 하나의 대회에는 하나의 팀으로만 등록이 가능합니다.

* 팀의 수상 요건 충족 시 팀의 대표가 수상하게 됩니다.


4. 코드

1) 입상자는 코드 제출 필수. 제출 코드는 예측 결과를 리더보드 점수로 복원할 수 있어야 함

2) 코드 제출시 확장자가 R user는 R or .rmd. Python user는 .py or .ipynb

3) 코드에 ‘/data’ 데이터 입/출력 경로 포함 제출

4) 전체 프로세스를 일목요연하게 정리하여 주석을 포함하여 하나의 파일로 제출

5) 모든 코드는 오류 없이 실행되어야 함(라이브러리 로딩 코드 포함되어야 함).

6) 코드와 주석의 인코딩은 모두 UTF-8을 사용하여야 함

7) 코드 제출 시 데이콘에서 안내한 양식에 맞추어 제출하여야 함


5. 토론(질문)

해당 대회에서는 대회 운영 및 데이터 이상에 관련된 질문 외에는 답변 드리지 않을 예정입니다. 결측치 처리 방법, 모델 구성 방법 등등 대회 운영 및 데이터 이상 외 질문은 토론 페이지를 통해 자유롭게 토론해 주시기 바랍니다.

* 데이콘 답변을 요청하는 경우 토론 제목에 [DACON 답변 요청] 문구를 넣어 질문을 올려 주시기바랍니다. 예) [DACON 답변 요청] 시상식은 언제 열리나요?

Main Event Schedule

  1. 05.01

    대회 시작
  2. 05.15

    팀 병합 마감
  3. 05.19

    2차 훈련 세트 공개
  4. 05.25

    17:59 제출 마감
  5. 05.26

    Chrono 리더보드 시작
  6. 06.22

    Chrono 리더보드 종료
  7. 06.30

    코드 제출 마감 및 평가
  8. 07.08

    최종 수상자 발표