※ .pkl 확장자의 입출력 데이터는 joblib 라이브러리를 이용하여 저장된 것으로, 동일하게 joblib 라이브러리를 이용하여야 정상적으로 로드됩니다.
진행에 참고 바랍니다.위 이미지는 출력 데이터의 공간을 형상화한 것으로 데이터는 각 샘플별로,
서로 다른 길이의 시간적 시퀀스를 가지며
위의 이미지와 동일한 형태의 2차원 공간(row, column)으로 구성되어 있습니다.
※ 실제 데이터의 경우 위의 공간 column 앞에 시간 1column(Julian day), 깊이 2columns(Depth, Elevation)이 위치하고 있기 때문에 위 형태의 공간 데이터는 column 인덱스로 3에서부터 시작하게 됩니다.
위 공간의 좌 → 우 방향은 하류 → 상류 방향으로 이루어져 있습니다. 이는 수온 및 염분에 영향을 주는 주요 요인인 해수의 유입이 하류 → 상류로 이루어지기 때문으로, 반면 물의 기본적인 흐름과 일반적인 시간의 그 반대인 상류 → 하류 방향이기 때문에 참가자분들은 이와 같은 양방향적 특성을 고려하실 필요가 있습니다.
※ 필요에 따라 데이터의 방향을 바꿔서 모델링해도 되며, 다만 결과는 주어진 양식에 맞게 변환하여 제출되도록 해야 합니다.
각 공간 격자는 0.수온 1.염분의 두 가지 값을 갖게 됩니다. 따라서 실제 샘플 1개 출력값 형상은 (시간길이, row, column, 수온 및 염분)의 4개 dimension 형상으로 이루어져 있습니다.
공간 격자에서 물이 아닌 영역은 -99의 값을 갖습니다.
데이터는 joblib 라이브러리의 .pkl 형식으로 저장되어 있으며, 별도의 ID 없이 입력 데이터가 주어진 순서대로 개별 샘플의 numpy array가 list 형태로 묶여있습니다. 따라서 순서에 주의 바랍니다.
평가시에 수온의 오차는 염분 오차 대비 0.05의 가중치를 갖게 됩니다. 또한 전체 공간값의 오차 가운데 위 이미지에 나와있는 6개 POI 지점의 오차값은 3배의 가중치를 갖게 됩니다.
테스트셋에 한하여, 출력데이터는 입력데이터보다 12시간 늦게 시작합니다. 즉, 입력데이터가 전반부 12시간 만큼 더 많이 주어지게 됩니다. 상세한 해당 내용은 아래에 다시 서술하니 참고바랍니다.
학습셋에 한하여, 이해를 돕기 위해 출력데이터가 컬럼명이 기재된 csv 파일로도 제공됩니다. 모델링 과정에 주어진 형상이 아닌 다른 형상으로 데이터를 처리하고 싶은 경우 해당 .csv 파일을 이용하여 출력데이터를 원하는 형태로 구성할 수 있습니다. 단, 제출시에는 주어진 양식에 맞게 변환해야 합니다.
출력 데이터는 float32 값을 갖습니다.
입력데이터는 각 주요 경계값으로 이루어진 pandas DataFrame 테이블이며, 출력데이터와 마찬가지로 list화 하여 하나의 .pkl파일로 묶여있습니다. 순서에 유의 바랍니다.
또한 함안보 수온 및 함안보로 월류/저류의 형태로 유입되는 해수의 수온이 별도의 csv로 제공됩니다. 두 데이터는 각각 다른 시간 간격을 가지며, 적용시에는 입력 테이블의 시간 구간과 매칭한 다음 시간 간격 사이의 빈 구간을 interpolation해야 합니다. 실제 k-water는 선형 interpolation을 사용하고 있으으로 참가자분들께도 같은 방식이 권장됩니다.
입력 테이블의 주요 구성요소는 다음과 같습니다.
JDAY: Julian Day 방식으로 나타낸 날짜 및 시간 값. 날짜는 1일이 1, 시간은 한 시간당 1/24의 값을 가짐
---- 이하 기상조건 ----
Tair: 기온(℃)
Tdew: 이슬점온도(℃)
Wind: 풍속(m/sec)
Phai: 풍향(radian, 풍상→풍하 방향)
Cloud: 운량(하늘에서 구름 비율, 0-청명~10-overcast)
---- 이하 유량조건 ----
함안보: 함안보 유입량(유량)
해수(월): 해수 월류유입 유량
해수(저): 해수 저류유입 유량
좌안: 함안보 좌안방류량
우안: 우안방류량
---- 이하 기타조건 ----
Sal: 유입되는 염분(psu)
함안보 수온, 월류 및 저류 수온(℃) - 별도의 .csv 파일로 제공
데이터셋 test 폴더에 포함된 answer_sample.pkl 파일에 해당 샘플의 예측값을 채워서 제출합니다.
해당 파일은 학습 데이터의 출력과 동일하게 float32 자료형의 numpy array가 입력 순서대로 list화되어 있습니다.
값을 채울 때의 혼선을 막기 위해 시간 및 깊이 관련 컬럼 3개가 이미 포함되어 있으므로, 현재 0으로 채워져있는 남은 구간의 값을 채우면 됩니다.
물이 아닌 구역은 주어진 학습데이터와 동일하게 -99로 채워서 제출합니다.
[시간, row, column, 수온 및 염분]의 차원 순서와 하류 → 상류로의 좌우 배열에 유의바랍니다.
float32 자료형으로 저장하여 제출바랍니다.
양식 미준수로 인한 평가 오류의 책임은 참가자에게 있으므로 유의바랍니다.
※결과 제출은 2021.10.28 00시부터 가능하므로 참고 바랍니다.
테스트셋의 경우 학습셋과 달리 입력데이터에 비해 출력데이터가 12시간 짧게 구성되어 있습니다.
모델링의 관점에서 단시점 입력 - 단시점 출력이 가장 이상적인 방식이며 본 과제는 데이터에 시간적 특성이 있으나 시계열 과제는 아닙니다.
그럼에도, ‘물의 흐름’이라는 데이터의 근본적 특성상 각 지점마다의 관측값은 물의 흐름과 해수의 유입 방향에 따라 시간적으로 다른, 순차적인 변화가 생기게 됩니다. 즉, 현 시점에서 특정 구간의 값에 영향을 준 입력값과 수km 상류 또는 하류 지점에 영향을 준 입력값은 서로 다른 시점의 조건값일 가능성이 있습니다.
이와 같은 특성을 고려하여, K-Water는 참가자분들이 모델링을 할 때 입력조건 활용의 시간 구간을 최대 12시간 내에서 자유롭게 설정하도록 데이터를 구성하였습니다. 만약 6시간 분량의 입력값이 시퀀스로 주어질 때가 가장 좋다면 각 출력값 이전 6시간 분량을 입력값으로 사용하면 되고, 1:1로 단시점 입출력이 가장 좋은 결과를 낸다면 1:1의 단시점 입출력으로 모델을 구성하면 됩니다.
이와 같은 특성에 따라 테스트셋에 한해 입출력 데이터는 같은 종료 시점을 갖지만, 출력데이터는 입력데이터에 비해 12시간 늦게 시작(12시간만큼 짧음)한다는 점에 유의바랍니다.
또한, 재차 강조하면 평가시에 수온의 오차는 염분 오차 대비 0.05의 가중치를 갖게 됩니다. 또한 전체 공간값의 오차 가운데 위 이미지에 나와있는 6개 POI 지점의 오차값은 3배의 가중치를 갖게 됩니다. 이는 본 모델에서 예측하고자 하는 값으로 수온보다 염분이 훨씬 중요하며, 그 가운데에서도 현장에서는 주요 POI지점의 값을 활용하기 때문입니다. 따라서 모델링 과정에서 자체평가시에 이와 같은 가중치 특성을 오차 계산에 반영하면 보다 실제 스코어와 가까운 결과를 얻으실 수 있겠습니다.
POI는 csv상의 seg_ 번호로 293, 285, 277, 267, 261, 257의 수직구간이며
.pkl 데이터 내 각 샘플의 Column Index로 6, 14, 22, 32, 38, 42에 해당됩니다.