kcg-ai-monitoring/prediction/output
htlee 0a4d023c76 fix(prediction): output 5종 이상 정상화 (stats/event/lightweight)
5가지 출력 이상 동시 해결:

1. stats_aggregator (이상 1, 5)
   - aggregate_hourly에 by_category, by_zone JSON 집계 추가
   - hour_start를 KST 기준으로 변경 (대시보드 표기와 boundary 일치)

2. event_generator 룰 정리 (이상 2, 3, 4)
   - critical_risk 임계값 90→70 (risk.py CRITICAL 분류와 일치)
   - territorial_sea_violation, contiguous_zone_high_risk, special_zone_entry 신설
     (실측 zone_code: TERRITORIAL_SEA/CONTIGUOUS_ZONE/ZONE_*)
   - 잘못된 NLL/SPECIAL_FISHING_* 룰 제거
   - HIGH_RISK_VESSEL 신규 카테고리 (50~69 MEDIUM, 70+ CRITICAL)
   - break 제거: 한 분석결과가 여러 카테고리에 동시 매칭 가능

3. dedup window prime 분산 (이상 5)
   - 30/60/120/360분 → 33/67/127/367분
   - 5분 사이클 boundary와 LCM 회피하여 정시 일제 만료 패턴 완화

4. lightweight path 신호 보강 (이상 2, 3, 4 근본 해결)
   - vessel_store._tracks의 24h 누적 궤적으로 dark/spoof/speed_jump 산출
   - 6,500 vessels(전체 93%)의 is_dark, spoofing_score가 비로소 채워짐
   - compute_lightweight_risk_score에 dark gap, spoofing 가점 추가
     (max 60→100 가능, CRITICAL 도달 가능)

시간 처리 원칙 적용:
- DB 컬럼은 모두 timestamptz 확인 완료
- aggregate_hourly KST aware datetime 사용
- pandas Timestamp는 source-internal 비교만 (안전)
2026-04-08 15:18:18 +09:00
..
__init__.py feat: S3 prediction 신규 출력 모듈 5종 + scheduler 통합 2026-04-07 13:00:50 +09:00
alert_dispatcher.py feat: S3 prediction 신규 출력 모듈 5종 + scheduler 통합 2026-04-07 13:00:50 +09:00
event_generator.py fix(prediction): output 5종 이상 정상화 (stats/event/lightweight) 2026-04-08 15:18:18 +09:00
kpi_writer.py fix: prediction 5가지 이슈 수정 — 모든 파이프라인 정상 동작 2026-04-08 06:47:53 +09:00
stats_aggregator.py fix(prediction): output 5종 이상 정상화 (stats/event/lightweight) 2026-04-08 15:18:18 +09:00
violation_classifier.py fix: prediction 5가지 이슈 수정 — 모든 파이프라인 정상 동작 2026-04-08 06:47:53 +09:00