ARIMA 모델 학습 및 예측 자동화

유하하·2022년 9월 3일
0
# 모든 국립공원별 산림 종류별 ARIMA모델 학습 및 예측 자동화

import pmdarima as pm
import pandas as pd

park_type = ['bukhan', 'byeonsan', 'chiak', 'dadohae', 'deogyu', 'gaya', 'gyeongju',
             'gyeryong', 'halla', 'hallyeo', 'jiri', 'juwang', 'mudeung', 'naejang',
             'odae', 'seorak', 'sobaek', 'songni', 'taean', 'taebaek', 'wolchul', 'worak']
R2_list = []
RMSE_list = []
MAPE_list = []
cls = []
code = []
for park in park_type:
    for i in range(4):
        data = load_data(park, i)
        data['date'] = pd.to_datetime(data['date'])
        
        # 데이터 나누기
        train_data = data[data['date'] <= '2020-01-01']
        test_data = data[data['date'] >= '2020-01-01']
        
        # ARIMA MODEL
        model = pm.ARIMA(order=(2, 1, 0),
                         seasonal_order=(2, 1, 0, 46),
                         scoring='mse'
                         )
        model_fit = model.fit(train_data['avg'])
        model_predict = model_fit.predict(len(test_data['avg']))
        R2_list.append(R2(test_data['avg'], model_predict))
        RMSE_list.append(RMSE(test_data['avg'], model_predict))
        MAPE_list.append(MAPE(test_data['avg'], model_predict))
        cls.append(i)
        code.append(park)
        
df = pd.DataFrame({'park': code, 'class': cls, 'R2': R2_list, 'RMSE': RMSE_list, 'MAPE': MAPE_list})
df.to_csv(root+'arima_final.csv')
profile
기록용

0개의 댓글