Implementasi Facebook Prophet – Part 7

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.

Sharing is caring: