This commit adds the model_to_dict and model_from_dict functions, using
all of the logic that previously lived in model_to_json and
model_from_json, and converting those functions to simply reuse the new
ones.
This is useful because sometimes the user may want to serialize the dict
in some other way (e.g. another JSON serialization library such as ujson
or orjson, or something entirely different).
* cmdstan variable extraction update
* add backwards compatibility
* Fix bug
* Upgrade stan version in requirements and in CI testing
Co-authored-by: Ben Letham <bletham@gmail.com>
I did as PyStanBackend. And now when we use the method fit of Prophet, we can do like in the documentation:
https://facebook.github.io/prophet/docs/additional_topics.html#updating-fitted-models
def stan_init(m):
"""Retrieve parameters from a trained model.
Retrieve parameters from a trained model in the format
used to initialize a new Stan model.
Parameters
----------
m: A trained model of the Prophet class.
Returns
-------
A Dictionary containing retrieved parameters of m.
"""
res = {}
for pname in ['k', 'm', 'sigma_obs']:
res[pname] = m.params[pname][0][0]
for pname in ['delta', 'beta']:
res[pname] = m.params[pname][0]
return res
df = pd.read_csv('../examples/example_wp_log_peyton_manning.csv')
df1 = df.loc[df['ds'] < '2016-01-19', :] # All data except the last day
m1 = Prophet().fit(df1) # A model fit to all data except the last day
%timeit m2 = Prophet().fit(df) # Adding the last day, fitting from scratch
%timeit m2 = Prophet().fit(df, init=stan_init(m1)) # Adding the last day, warm-starting from m1
Update models.py
Update models.py
Update models.py
Update models.py
Update models.py
Update models.py
Update models.py
Test
Test2
Test4
Test4
Test are fixed
* Added optional colour to plot_cross_validation_metric to facilitate the comparison of different model's performance on the one plot
* use color
Change from colour to color for consistency.
Co-authored-by: Ben Letham <bletham@gmail.com>
* Add DeepSource config
* Simplify if statement
* Refactor use of dict() with empty literal
* Use set comprehension syntax
* Refactor chained comparison
* Rewrite instances of list literal within set() as set literals
* Add test_slow to class definition
* Update performance_metrics() in diagnostics.py
Include smape as a valid metric.
Add support for monthly horizons.
* Update performance_metrics() docstring
* Update performance_metrics() docstring
* Include smape in test_diagnostics.py
* sMAPE code formatting improvement