AI Friends Public data utilization temperature estimation competition

Algorithm | Structured | Regression | Weather | MSE

  • moneyIcon Prize : Total 250만원
  • 2020.03.01 ~ 2020.04.13 17:59 + Google Calendar
  • 1,610 Users Completed

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)



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)