기상청의 지진발생현황 Time Series Dataset(시계열 데이터 세트)로 향후 1년간 지진 진도수를 예측해보는 예제 입니다.

Time Serise Dataset 은 한국기상청 국내지진목록 자료로 참고 하였습니다. 

예측 API는 facebook의 open 소스 fbprophet API를 호출하여 예측 하였으며 자세한 정보는 fbprophet의

링크된 Guide를 참조 하세요.

 

Time Series Datasets 으로 한국 지역별 지진 예측 하기 예제

 

한국 기상청 국내지진목록 (1978-08-30 ~ 2019-11-19)

# Pakage https://github.com/facebook/Prophet
import numpy as np

import pandas as pd
import matplotlib.pyplot as plt
from fbprophet import Prophet


▣ numpy, pandas, matplotlib 를 import 합니다.

▣ 국내지진목록 Time Series Dataset를 cvs 화일로 변환합니다.
data_path = 'Datasets/'
df = pd.read_csv(data_path + 'earthquake_korea_2019.csv', header=0, delimiter=',')

 

Time Serise Dataset의 예측학습하고자 하는 지역영문명을 지정합니다. 
df = df.loc[(df.mainarea == 'Gyeongsangbuk-do')]
df['Date'] = pd.to_datetime(df['date'])

 

fbprophet 의 입력은 항상 두개의 열이 있는 dataframe을  날짜 (ds) 와 지진진도 (y) 를 대상으로 합니다.

data = df[['Date', 'magnitude']].reset_index(drop=True)
data = data.rename(columns={'Date': 'ds', 'magnitude': 'y'})

# Prophet Model
model = Prophet()

 fbprophet 의 fit 메소드를 호출하여 학습을 합니다.
# Prophet Training
model.fit(data)

 fbprophet 로 예측을 하고자하는 일수를 지정합니다. (예: 이후  365을 예측 하고자하는경우 365를 지정)
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)
forecast.tail()
 fbprophet 로 예측된 데이터 프레임을 그래프로 출력합니다.
fig1 = model.plot(forecast)
plt.show()

 

실행 결과

Gyeongsangbuk-do 2020년 지진예측

 

+ Recent posts