머신러닝으로 구축한 캘리포니아 지진 실시간 예측 모델
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

지진 발생 예측: 머신러닝을 활용한 캘리포니아 지진 실시간 예측 모델 구축

카테고리

데이터 과학/AI

서브카테고리

머신러닝

대상자

  • 데이터 과학자 및 머신러닝 엔지니어
  • 지질학/지진학 분야 연구자
  • 예측 모델 개발자
  • 난이도: 중급 이상 (데이터 수집, 특징 공학, 모델 튜닝 기술 필요)

핵심 요약

  • 데이터 수집: USGS FDSN API를 통해 M2+ 지진 데이터 수집, ObsPy 라이브러리 사용
  • 특징 공학: 지역별/세포별 지진 빈도, b-value, 깊이 분산, 이벤트 간격 변동성 계산
  • 모델 튜닝: XGBoost 분류기 사용, SMOTE 기법으로 불균형 데이터 처리, F1-score 최적화
  • 배포: joblib으로 모델 저장, 0.3593 임계값 기반 경고 시스템 구축

섹션별 세부 요약

1. 데이터 수집 및 전처리

  • 데이터 범위: 1990년부터 현재까지, 32.0°N~42.0°N, -125.0°W~-114.0°W 지역
  • API 한도 대응: Chunking 기법으로 1년 단위로 데이터 분할 후 수집
  • 저장: CSV 파일로 저장, MIN_EVENTS_PER_CELL=3 기준으로 세포별 특징 계산

2. 특징 공학

  • 지역 특징:
  • Seismicity Rate (지진 발생 빈도)
  • b-value (소형/대형 지진 비율, 하락 시 대형 지진 가능성)
  • 깊이 표준편차, 이벤트 간격 CV
  • 세포별 특징:
  • Local Seismicity Rate, Local b-value, Local 평균 지진 강도
  • 슬라이딩 윈도우: 90일 기간, 7일 간격으로 이동

3. 모델 학습 및 튜닝

  • 모델 선택: XGBoost Classifier (정확도 및 복잡한 테이블 데이터 처리 능력)
  • 불균형 데이터 대응:
  • Stratified Splitting (학습/테스트 세트 비율 유지)
  • SMOTE (소수 클래스 샘플 생성, k_neighbors 동적 조정)
  • 성능 평가:
  • F1-score 최적화 (정밀도/재현율 균형)
  • ROC-AUC, Confusion Matrix, Precision-Recall Curve 분석
  • 특징 중요도: 지역 지진 빈도, 깊이 표준편차, 이벤트 간격 CV, 지역 b-value 상위

4. 모델 배포 및 실시간 예측

  • 모델 저장:

```python

joblib.dump(best_model, "earthquake_prediction_model.joblib")

joblib.dump(X.columns.tolist(), "model_feature_columns.joblib")

```

  • 예측 스크립트:
  • 최신 데이터 수집 (USGS FDSN API)
  • 일관된 특징 공학 (NaN 값 대체, 0으로 채우기)
  • 임계값 적용: 0.3593 (F1-score 최적값)
  • 자동화:
  • cron job 또는 Task Scheduler일일 실행
  • 이메일 알림: smtplib 사용, Large Quake 예측 시 즉시 알림

5. 성능 평가 및 최적화

  • Confusion Matrix:

```text

True Positives: 85, False Negatives: 15

False Positives: 20, True Negatives: 385

```

  • Precision-Recall Curve: 불균형 데이터에 효과적
  • 모델 최적화: GridSearchCV로 하이퍼파라미터 튜닝

결론

  • 실무 적용 팁:
  • 0.3593 임계값 설정 필수 (F1-score 균형 유지)
  • 자동화 배포 (cron job) 및 이메일 알림 시스템 구축 권장
  • 특징 공학 일관성 확보 (학습/예측 단계 동일한 처리)
  • 핵심 구현 방법: XGBoost + SMOTE + joblib + cron job 통합 활용