AI프렌즈 시즌 공공 데이터 활용 온도 추정 AI 경진대회

알고리즘 | 정형 | 회귀 | 기상 | MSE

  • moneyIcon Prize : 총 250만원
  • 1,609명 마감

2020.03.05 20:14 셀렉트스타 상 추가 

2020.03.06 11:30 셀렉트스타 상을 위한 특별 평가지표 공개


🏆 총 상금 250만원

 

•🥇1위 - 100만원

•🥈2위 - 70만원

•🥉3위 - 30만원

 

•🥇특별상 - 50만원



※ 셀렉트스타 특별상은 Private 리더보드 기준 상위 10팀에 대하여 특별 평가지표를 적용하여, 1등에게 시상하는 상입니다. 

※ 기존 상금과 중복 수상 가능합니다. 

※ 특별 평가지표 적용은 전체 Test set 에 적용하여 값을 산출합니다. 


특별 평가지표


특별 평가지표는 총 80일간의 test set 데이터에 대하여

  1. 실제 값에 대한 일자별 최대/최소 값과 예측 값에 대한 일자별 최대/최소 값 도출
  2. 선정된 160개의 샘플 (80일 * 2) 들에 대하여 MSE 산출

코드로 구현하면 아래와 같이 구현 가능합니다.


import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error


def SelectStar_metric(y_true, y_pred):
    
    # 로직 1. y_true와 y_pred의 일별 min max 값을 구한다
    
    # A. pd.concat을 위한 인덱스 맞춰주기 
    y_true.reset_index(drop = True, inplace = True)
    y_pred.reset_index(drop = True, inplace = True)
    
    # B. 일자별로 그룹하기 위한 변수 생성 
    # 테스트 기간이 80일이며, 10분단위 데이터가 시간 순서대로 정렬되어 있기 때문에
    # 0번 부터 79번을 차례대로 각각 144번 반복하여 변수 생성 
    group_id = pd.Series(np.repeat([i for i in range(80)], 144), name = 'group_id')
    
    # C. group_id 추가 
    y_true = pd.concat([y_true, group_id], axis = 1)
    y_pred = pd.concat([y_pred, group_id], axis = 1)
    
    # D. 일자별 min max 값 산출
    # groupby를 통해 일자별로 묶어준 후, 일자별 min max 값을 산출한다 
    y_true = y_true.groupby('group_id').agg(['min', 'max'])
    y_pred = y_pred.groupby('group_id').agg(['min', 'max'])
    
    # 로직 2. 선정된 160개의 sample들에 대하여 MSE를 산출한다 
    return mean_squared_error(y_true, y_pred)



Main Event Schedule

  1. 03.01

    대회 시작

  2. 03.29

    팀 병합 마감

  3. 04.13

    17:59 대회 종료

  4. 04.17

    코드 제출 마감

  5. 04.18

    내부 평가 시작

  1. 04.27

    최종 수상자 발표

  2. 04.28

    솔루션 및 코드 설명 영상 제출

  3. 05.05

    솔루션 및 코드 설명 영상 제출 마감

2020.03.05 20:14 셀렉트스타 상 추가 

2020.03.06 11:30 셀렉트스타 상을 위한 특별 평가지표 공개


🏆 총 상금 250만원

 

•🥇1위 - 100만원

•🥈2위 - 70만원

•🥉3위 - 30만원

 

•🥇특별상 - 50만원



※ 셀렉트스타 특별상은 Private 리더보드 기준 상위 10팀에 대하여 특별 평가지표를 적용하여, 1등에게 시상하는 상입니다. 

※ 기존 상금과 중복 수상 가능합니다. 

※ 특별 평가지표 적용은 전체 Test set 에 적용하여 값을 산출합니다. 


특별 평가지표


특별 평가지표는 총 80일간의 test set 데이터에 대하여

  1. 실제 값에 대한 일자별 최대/최소 값과 예측 값에 대한 일자별 최대/최소 값 도출
  2. 선정된 160개의 샘플 (80일 * 2) 들에 대하여 MSE 산출

코드로 구현하면 아래와 같이 구현 가능합니다.


import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error


def SelectStar_metric(y_true, y_pred):
    
    # 로직 1. y_true와 y_pred의 일별 min max 값을 구한다
    
    # A. pd.concat을 위한 인덱스 맞춰주기 
    y_true.reset_index(drop = True, inplace = True)
    y_pred.reset_index(drop = True, inplace = True)
    
    # B. 일자별로 그룹하기 위한 변수 생성 
    # 테스트 기간이 80일이며, 10분단위 데이터가 시간 순서대로 정렬되어 있기 때문에
    # 0번 부터 79번을 차례대로 각각 144번 반복하여 변수 생성 
    group_id = pd.Series(np.repeat([i for i in range(80)], 144), name = 'group_id')
    
    # C. group_id 추가 
    y_true = pd.concat([y_true, group_id], axis = 1)
    y_pred = pd.concat([y_pred, group_id], axis = 1)
    
    # D. 일자별 min max 값 산출
    # groupby를 통해 일자별로 묶어준 후, 일자별 min max 값을 산출한다 
    y_true = y_true.groupby('group_id').agg(['min', 'max'])
    y_pred = y_pred.groupby('group_id').agg(['min', 'max'])
    
    # 로직 2. 선정된 160개의 sample들에 대하여 MSE를 산출한다 
    return mean_squared_error(y_true, y_pred)



Main Event Schedule

  1. 03.01

    대회 시작
  2. 03.29

    팀 병합 마감
  3. 04.13

    17:59 대회 종료
  4. 04.17

    코드 제출 마감
  5. 04.18

    내부 평가 시작
  6. 04.27

    최종 수상자 발표
  7. 04.28

    솔루션 및 코드 설명 영상 제출
  8. 05.05

    솔루션 및 코드 설명 영상 제출 마감