Untuk melakukan parameter tuning, pertama kita buat dahulu parameter grid yang berisi parameter yang akan dituning.
from sklearn.model_selection import ParameterGrid
param_grid = {'seasonality_mode': ['additive', 'multiplicative'],
'seasonality_prior_scale': [5, 10, 20],
'holidays_prior_scale': [5, 10, 20],
'changepoint_prior_scale': [0.01, 0.05, 0.1]}
grid = ParameterGrid(param_grid)
Berikutnya kita lakukan looping dari membuat model, melakukan training, melakukan cross validation dan menghitung error.
#Empty list to store results
rmse = []
#start the loop
for params in grid:
#build the model
m = Prophet(growth = 'linear',
yearly_seasonality = True,
weekly_seasonality = True,
daily_seasonality = False,
holidays = holidays,
seasonality_mode = params['seasonality_mode'],
seasonality_prior_scale = params['seasonality_prior_scale'],
holidays_prior_scale = params['holidays_prior_scale'],
changepoint_prior_scale= params['changepoint_prior_scale'])
m.add_regressor('Christmas', mode = 'multiplicative')
m.fit(training)
#Cross-Validation
df_cv = cross_validation(m,
horizon = '31 days',
initial = '1450 days',
parallel = 'processes')
#Measure and store results
error = np.sqrt(mean_squared_error(df_cv['y'], df_cv['yhat']))
rmse.append(error)
Untuk melihat hasil tuning, kita buat dataframe baru yang menampung nilai rmse yang dihitung pada langkah diatas.
#Get the best parameters tuning_results = pd.DataFrame(grid) tuning_results['rmse'] = rmse tuning_results
Latihan
Untuk latihan, kita akan memprediksi permintaan shelter. Data yang digunakan adalah DHS_weekly.csv.
Untuk solusi dari latihan, silakan lihat di Prophet Challange.ipynb.
Sampai disini tutorial Facebook Prophet menggunakan Python sudah selesai, semoga bermanfaat.