Comments (4)
You can significantly reduce runtime by
- Using all available CPU cores (Silverkite uses a single core by default).
- Reducing cross-validation splits or skipping CV (not recommended). Make sure to cross-validate your model thoroughly on sample datasets beforehand. To do this:
computation = ComputationParam(
hyperparameter_budget=None,
n_jobs=-1, # to debug, change to 1 for more informative error messages
verbose=3)
evaluation_period = EvaluationPeriodParam(
cv_max_splits=0,
)
result = forecaster.run_forecast_config(
df=data_frame,
config=ForecastConfig(
# uses the SILVERKITE model template parameters
model_template=ModelTemplateEnum.SILVERKITE.name,
forecast_horizon=365, # forecasts 365 steps ahead
coverage=0.95, # 95% prediction intervals
metadata_param=metadata,
evaluation_period_param=evaluation_period,
computation_param=computation
)
)
Also, the training time does not scale linearly with input data points. e.g. with 3 years of input data, the training time does not increase 3 times.
from greykite.
Thanks for the quick reply! I have a big cpu cluster setup and it uses all available cores when computing the forecast so that seems to be working as expected. With parallel and removing CV it reduces it but still takes about 6 seconds. What is the typical time for predictions you see in general for Greykite/Silverkite? Is it always in the seconds?
from greykite.
Great, you can optimize the total runtime by experimenting with parallelization of Silverkite CV and the total number of time series you want to forecast.
For a single time series, the runtime depends on the amount of training data, forecast horizon and the number of CV splits, but it is in seconds. Silverkite's runtime is comparable to Auto-Arima (Table 1 here ) while providing additional features (e.g. holiday effects). Let us know if you found another library suitable for your use case.
from greykite.
Gotcha. We are trying to predict a big number of time series in a short amount of time so that's why execution time is very important. I will keep tweaking and exploring. Thanks for the quick response and the guidance.
from greykite.
Related Issues (20)
- AttributeError: 'EvaluationPeriodParam' object has no attribute 'cv_selection_metric' when setting just 'test_horizon' HOT 1
- Extract components from forecast HOT 4
- Compatibility with plotly 5 HOT 2
- IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed HOT 2
- Wrong assignment to summary prediction categories HOT 4
- problems with additional regressors in low-level template HOT 1
- Different Precision Causes IndexError HOT 2
- pip3 install fail, osqp HOT 3
- Does multi-stage forecasting supports weekly aggregation as-well HOT 4
- Greykite Forecaster Model is Unpickle-able HOT 7
- Multivariate Support
- How to extract future trend? HOT 1
- support python 3.10 HOT 5
- No seasonal terms are included with seasonality options set to 'auto' with monthly data
- Forecasts appear too smooth for dataset original variability HOT 1
- can t set time col in metadata HOT 1
- Parallel execution on Spark, HOT 2
- ResourceWarning: Unclosed file... messages when deserializing a model. HOT 1
- The default performance of greykite silverkite is far worse than default prophet HOT 3
- Enforcing positive output, or how to tell the model not to produce negative results HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from greykite.