3줄 요약

  • 10월 20일 대구에 이슬비가 오는데, 사이트에선 기상청이 “비 0.5mm”, 우리는 강수확률 11~49%라 우리가 틀려 보였음
  • 실제 값과 맞춰 보니 기온·습도·풍속은 우리가 더 정확했음. 문제는 “1mm 이상만 비”라는 채점 기준이었음
  • 1mm 기준은 그대로 두고 0.1mm 이상을 맞히는 ‘약한 비’ 분류기를 하나 더 붙였음. 테스트 기간 F1이 0.51로 기상청 0.37보다 높음

창밖은 비, 화면은 흐림

  • 점심때 대구에 이슬비가 내림
  • 프로젝트 페이지를 열어 보니 기상청은 비 아이콘에 0.5mm, 우리는 흐림에 강수확률 11~49%
  • 사람 눈엔 기상청 승. 그래서 06~13시 8시간을 실제 값과 맞춰 봤음
10월 20일 대구 06~13시우리기상청
기온 MAE1.27℃1.65℃
습도 MAE2.3%5.0%
풍속 MAE0.53m/s0.86m/s
  • 숫자는 셋 다 우리가 이겼음
  • 실제 기온은 15~16℃에서 거의 안 움직였음. 기상청은 낮 20℃, 우리는 17.8℃까지 오른다고 봤으니 둘 다 높게 잡았고 기상청이 더 빗나감
  • 관측값은 기상청 초단기실황임. 실시간 ASOS는 우리 API 키로 못 받아서, 서비스가 최근 시간을 채울 때 쓰는 값을 그대로 썼음

범인은 1mm라는 기준

  • 이 대결은 처음부터 “시간당 1mm 이상이면 비”로 채점함
  • 그날 아침 1mm를 넘긴 건 12시(1.2mm) 한 번뿐. 나머지는 0.2~0.5mm 이슬비였음
  • 우리 모델은 1mm 이상 올 확률을 배웠으니 이슬비엔 확률이 낮게 나오는 게 정상임
  • 기상청 단기예보는 “1mm 미만”도 비로 표시함. 화면에선 이게 창밖이랑 맞아 보였던 것
  • 1mm로 채점하면 둘 다 아침 내내 “비 안 옴”이라 점수 차가 없음. 12시도 둘 다 놓쳤음

10월 20일 대구 06~13시 관측 강수량, 기상청 예보 강수량, 우리 1mm 강수확률과 0.1mm 약한 비 확률을 시간별로 비교한 표

HSL 제작 — 관측은 기상청 초단기실황, 약한 비 확률은 분류기를 만든 뒤 이 발표에 붙여 본 값

기준을 바꾸지 않고 하나 더 둔 이유

  • 0.1mm만 와도 사람은 비가 왔다고 느낌. 그러니 0.1mm도 맞히긴 해야 함
  • 그런데 틀려 보이는 날이 나오자마자 주 기준을 바꾸면 결과를 보고 규칙을 고친 셈이 됨. 테스트 기간도 이미 1mm로 한 번 열었음
  • 기준만 0.1mm로 바꾸는 것도 답이 아님. 우리 모델은 1mm 확률을 내도록 학습돼서 점수가 엉터리로 나옴
  • 그래서 1mm는 주 지표로 두고, 0.1mm 이상을 맞히는 분류기를 따로 학습해 보조 지표로 붙이기로 함

Colab 대신 내 PC로

  • 서비스 앙상블은 LightGBM 하나와 CNN 헤드 두 개를 섞은 것임 (4편)
  • CNN 헤드를 다시 학습하려면 Colab GPU가 필요한데 남은 컴퓨팅 단위가 12.56개뿐이었음. 매일 05시 예보만 돌려도 하루 0.2~1개씩 줄어드는 중
  • LightGBM은 CPU로 됨. 입력, 학습·검증·테스트 구간, 설정은 4편 LightGBM과 똑같이 두고 정답만 “0.1mm 이상”으로 바꿈
  • 학습표에 강수량이 0.1mm 단위로 들어 있어서 정답은 바로 만들 수 있었음. 0.1mm 이상 온 시간은 전체의 6.0%로 1mm 이상(2.96%)의 두 배쯤
  • 집 PC(Ryzen 5600X)에서 몇 분 만에 끝났음. 판정 기준선은 검증 기간 F1이 제일 높은 확률 0.31로 정함

0.1mm로 채점해도 앞섰음

0.1mm 이상 강수 F1우리 (약한 비 분류기)기상청
검증 (2026년 3~6월)0.6450.373
테스트 (2026년 7월~10월 12일)0.5060.368
지난 7일 (10월 14~19일 발표)0.7190.565
  • 기상청은 단기예보 강수량을 그대로 씀. “1mm 미만”이 0.5mm로 들어가 있어서 0.1mm 기준에선 비 예보로 침
  • 테스트 점수는 이 분류기로 처음 한 번 연 값임
  • 지난 7일은 10월 20일에 만든 분류기를 그 주 발표에 거꾸로 붙여 본 값. 학습 데이터가 10월 10일 발표까지라 그 주 정답은 본 적 없음
  • 같은 방식으로 이슬비 날 아침에 붙여 보면 약한 비 확률이 38~57%라 8시간 내내 “약한 비”였음. 실제로 0.1mm 이상 온 6시간을 다 맞히고 2시간은 헛짚었음. 기상청은 4번 맞히고 2번 놓침
  • 테스트가 검증보다 낮은 건 여름 소나기철이라 그럼. 1mm 기준 때도 같은 모양이었음

검증, 테스트, 지난 7일 기간별 0.1mm 이상 강수 F1을 우리 약한 비 분류기와 기상청으로 비교한 막대 차트

HSL 제작 — 97개 관측소 × 48시간, 기상청 “1mm 미만”은 비로 계산

사이트에서 바뀐 것

  • 1mm 비 확률이 낮아도 약한 비 확률이 기준선을 넘으면 이슬비 아이콘(점 찍힌 구름)이 뜸
  • 기상청의 “1mm 미만” 비 예보도 같은 이슬비 아이콘으로 바꿔서 둘을 같은 방식으로 보여 줌
  • 관측소 카드와 시간별 표에 “약한 비” 확률이 들어감
  • 지난 7일 성적표에 “약한 비 F1” 칸이 생겼음. 1mm 비 F1은 그대로 있음 (프로젝트 페이지)

다음에 할 일

  • 지금 약한 비는 LightGBM 하나짜리 임시 버전임
  • 곧 낼 미국판에선 최적 앙상블(LightGBM + CNN 헤드) 전체를 처음부터 0.1mm 기준으로 학습할 예정이고, 그때 한국도 같이 0.1mm로 다시 학습함
  • 그 전에 Colab 컴퓨팅 단위부터 채워야 함