mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-06-30 03:37:53 +00:00
Add to additional topics docs
This commit is contained in:
parent
cd8a24eddd
commit
e11135e4a4
5 changed files with 26 additions and 6 deletions
|
|
@ -10,6 +10,8 @@ subsections:
|
|||
id: flat-trend-and-custom-trends
|
||||
- title: Updating fitted models
|
||||
id: updating-fitted-models
|
||||
- title: External references
|
||||
id: external-references
|
||||
---
|
||||
<a id="saving-models"> </a>
|
||||
|
||||
|
|
@ -67,7 +69,7 @@ Note that if this is used on a time series that doesn't have a constant trend, a
|
|||
|
||||
|
||||
|
||||
To use a trend besides these three built-in trend functions (piecewise linear, piecewise logistic growth, and flat), you can download the source code from github, modify the trend function as desired in a local branch, and then install that local version. This PR provides a good illustration of what must be done to implement a custom trend (https://github.com/facebook/prophet/pull/1466/files), as does this one that implements a step function trend (https://github.com/facebook/prophet/pull/1794) and this one for a new trend in R (https://github.com/facebook/prophet/pull/1778).
|
||||
To use a trend besides these three built-in trend functions (piecewise linear, piecewise logistic growth, and flat), you can download the source code from github, modify the trend function as desired in a local branch, and then install that local version. [This PR](https://github.com/facebook/prophet/pull/1466/files) provides a good illustration of what must be done to implement a custom trend, as does [this one](https://github.com/facebook/prophet/pull/1794) that implements a step function trend and [this one](https://github.com/facebook/prophet/pull/1778) for a new trend in R.
|
||||
|
||||
|
||||
<a id="updating-fitted-models"> </a>
|
||||
|
|
@ -121,3 +123,14 @@ As can be seen, the parameters from the previous model are passed in to the fitt
|
|||
|
||||
There are few caveats that should be kept in mind when considering warm-starting. First, warm-starting may work well for small updates to the data (like the addition of one day in the example above) but can be worse than fitting from scratch if there are large changes to the data (i.e., a lot of days have been added). This is because when a large amount of history is added, the location of the changepoints will be very different between the two models, and so the parameters from the previous model may actually produce a bad trend initialization. Second, as a detail, the number of changepoints need to be consistent from one model to the next or else an error will be raised because the changepoint prior parameter `delta` will be the wrong size.
|
||||
|
||||
|
||||
<a id="external-references"> </a>
|
||||
|
||||
### External references
|
||||
|
||||
These github repositories provide examples of building on top of Prophet in ways that may be of broad interest:
|
||||
|
||||
* [forecastr](https://github.com/garethcull/forecastr): A web app that provides a UI for Prophet.
|
||||
|
||||
* [NeuralProphet](https://github.com/ourownstory/neural_prophet): A Prophet-style model implemented in pytorch, to be more adaptable and extensible.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,11 +21,8 @@ You may have noticed in the earlier examples in this documentation that real tim
|
|||
Prophet detects changepoints by first specifying a large number of *potential changepoints* at which the rate is allowed to change. It then puts a sparse prior on the magnitudes of the rate changes (equivalent to L1 regularization) - this essentially means that Prophet has a large number of *possible* places where the rate can change, but will use as few of them as possible. Consider the Peyton Manning forecast from the Quickstart. By default, Prophet specifies 25 potential changepoints which are uniformly placed in the first 80% of the time series. The vertical lines in this figure indicate where the potential changepoints were placed:
|
||||
|
||||
|
||||
INFO:numexpr.utils:NumExpr defaulting to 8 threads.
|
||||
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
Even though we have a lot of places where the rate can possibly change, because of the sparse prior, most of these changepoints go unused. We can see this by plotting the magnitude of the rate change at each changepoint:
|
||||
|
|
|
|||
BIN
docs/static/trend_changepoints_files/trend_changepoints_4_0.png
vendored
Normal file
BIN
docs/static/trend_changepoints_files/trend_changepoints_4_0.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 108 KiB |
|
|
@ -188,7 +188,7 @@
|
|||
"source": [
|
||||
"Note that if this is used on a time series that doesn't have a constant trend, any trend will be fit with the noise term and so there will be high predictive uncertainty in the forecast.\n",
|
||||
"\n",
|
||||
"To use a trend besides these three built-in trend functions (piecewise linear, piecewise logistic growth, and flat), you can download the source code from github, modify the trend function as desired in a local branch, and then install that local version. This PR provides a good illustration of what must be done to implement a custom trend (https://github.com/facebook/prophet/pull/1466/files), as does this one that implements a step function trend (https://github.com/facebook/prophet/pull/1794) and this one for a new trend in R (https://github.com/facebook/prophet/pull/1778)."
|
||||
"To use a trend besides these three built-in trend functions (piecewise linear, piecewise logistic growth, and flat), you can download the source code from github, modify the trend function as desired in a local branch, and then install that local version. [This PR](https://github.com/facebook/prophet/pull/1466/files) provides a good illustration of what must be done to implement a custom trend, as does [this one](https://github.com/facebook/prophet/pull/1794) that implements a step function trend and [this one](https://github.com/facebook/prophet/pull/1778) for a new trend in R."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -254,6 +254,16 @@
|
|||
"\n",
|
||||
"There are few caveats that should be kept in mind when considering warm-starting. First, warm-starting may work well for small updates to the data (like the addition of one day in the example above) but can be worse than fitting from scratch if there are large changes to the data (i.e., a lot of days have been added). This is because when a large amount of history is added, the location of the changepoints will be very different between the two models, and so the parameters from the previous model may actually produce a bad trend initialization. Second, as a detail, the number of changepoints need to be consistent from one model to the next or else an error will be raised because the changepoint prior parameter `delta` will be the wrong size."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### External references\n",
|
||||
"These github repositories provide examples of building on top of Prophet in ways that may be of broad interest:\n",
|
||||
"* [forecastr](https://github.com/garethcull/forecastr): A web app that provides a UI for Prophet.\n",
|
||||
"* [NeuralProphet](https://github.com/ourownstory/neural_prophet): A Prophet-style model implemented in pytorch, to be more adaptable and extensible."
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
|
|||
Loading…
Reference in a new issue