Commit graph

267 commits

Author SHA1 Message Date
Daniel Scally
0e0f1a607a Adding validation to Prophet.add_seasonality to prevent user setting fourier_order <= 0 2019-05-31 10:21:09 -07:00
Alessandro Romano
b77f85ffd8 Add figsize parameter to plot methods 2019-05-23 10:29:50 -07:00
Ben Letham
7ff33137eb Change to MIT license 2019-05-21 11:40:04 -07:00
Ben Letham
a087eaec84 Fix FutureWarning in plotting by deregistering matplotlib converters (the future behavior). Also fix bad date formatting in non-daily plot that started came with change in matplotlib default in 3.0.2 2019-05-14 15:26:55 -07:00
Ben Letham
73c8faf15a py version bump 2019-05-14 09:11:21 -07:00
Ben Letham
526468b6e8 Fix FutureWarning in test, for sorting because non-concatenation axis is not aligned 2019-05-13 15:28:58 -07:00
Ben Letham
fdac46ad40 Fix DeprecationWarning for float64 casting 2019-05-13 15:21:54 -07:00
Ben Letham
f660264e23 Don't allow timezones in pandas datetime 2019-05-13 15:00:45 -07:00
Ben Letham
df6bef8920 Replace to_numpy() with values to maintain pd 0.23.4 support 2019-05-13 13:51:27 -07:00
Ben Letham
28cd55241f Verify that cap > floor (#807) 2019-05-13 13:11:07 -07:00
Ben Letham
269133c133 Change cross validation performance metrics to first aggregate over horizon before computing rolling average (#839, #863) 2019-05-08 10:47:26 -07:00
Ben Letham
e9c017ba01 Default to Newton optimizer if less than 100 datapoints (#842, #870, #888) 2019-05-07 11:47:36 -07:00
Ben Letham
26f60c0a49 If ds column is int, convert to str before pd.to_datetime to avoid nanosecond casting (#675) 2019-05-06 16:38:13 -07:00
Ben Letham
4e5e223e4f Add plotly plot to quickstart example 2019-05-06 16:15:23 -07:00
Olof Höjvall
ee14933b3f Changed returned object of plot_plotly, addressing #937 (#954) 2019-05-06 13:55:25 -07:00
Ben Letham
ec7689f03e R fallback to Newton if non-zero return code from optimization, to match existing Py behavior (#654) 2019-05-06 09:49:29 -07:00
Ben Letham
7297d98764 Use OrderedDict for seasonalities (#643) 2019-05-03 10:44:23 -07:00
Ben Letham
c8f2e8f847 Warn in cross validation if initial period is less than seasonality (#557), and fix bug that can produce error if period > initial 2019-05-03 08:40:20 -07:00
Ben Letham
35d470cbff Meaningful error message if predict is called before fit (for #462) 2019-05-02 14:53:57 -07:00
Jerry Prawiharjo
c11e668c0d Add logger.warning when falling back to Newton method (#950)
This adds logger.warning when we fall back to Newton method.
2019-05-02 14:34:24 -07:00
Ray Bell
f9adb9623e WIP: remove python Series.nonzero warning (#931)
* add to_numpy()

* remove .values
2019-05-02 11:51:35 -07:00
Olof Höjvall
c756d20100 Added a interactive Plotly plot of the forecast (#915) 2019-04-17 16:47:16 -07:00
Olof Höjvall
8eea5a1ca3 Feature Proposal with Python Draft: Masked seasonality (#873)
* Added feature to mask seasonality

* Added conditional seasonality tests and fixed plotting it

* Fixed diagnostics for conditional seasonality and cleaned up code
2019-03-18 10:04:35 -07:00
MT
eec2f46ac5 if optimization fails fallback to Newton even if algorithm is specified (#890) 2019-03-18 09:41:45 -07:00
Gabriel Linder
bd0979244d Fix FutureWarning from Pandas 0.24.0. (#830)
* Fix FutureWarning from Pandas 0.24.0.

Signed-off-by: Gabriel Linder <linder.gabriel@gmail.com>

* Stay compatible with older versions of pandas.

Signed-off-by: Gabriel Linder <linder.gabriel@gmail.com>
2019-02-15 10:28:51 -08:00
Ben Letham
de5b7494de Remove pd.Series from np.matmul 2019-01-15 12:47:54 -08:00
Gordon Inggs
aebe8da78d Rather using Monday const from built-in calendar.py (#791)
Latest version of holidays (0.9.9) changed the name of its MONDAY const
to MON. Rather using the MONDAY const from the same library as the
object that it is being used with.
2019-01-07 16:22:31 -08:00
Mpho Mphego
f16e22731f Update and rename README to README.md and Unicode strings (#766)
* Update and rename README to README.md and Unicode strings

Updated Readme file and converted from rst to markdown.
String contains ascii characters (converted to unicode string)

Signed-off-by: Mpho Mphego mpho112@gmail.com

* Deprecated import `from __future__ import unicode_literals` removed and ran isort module
https://mail.python.org/pipermail/python-dev/2016-December/147009.html

Included setuptool-git in the requirement.txt and updated `setup.py`
Reasons for this are highlighted here -> https://github.com/msabramo/setuptools-git#usage
2018-12-20 15:33:23 -08:00
Ben Letham
c9f1ccaa63 Version bump; test fixes; R build 2018-12-03 22:21:37 -08:00
Ben Letham
635ae5a1a6 Have fixed ordering for components plots 2018-12-03 20:14:24 -08:00
Ben Letham
1d398c679d Allow overriding any of the arguments to stan functions 2018-12-03 19:05:47 -08:00
Baran Buluttekin
0f5f05d53c Fix url for docstring in Turkey class (#751)
Docstring in Turkey class changed with corresponding url.
2018-12-03 16:54:39 -08:00
Ben Letham
f44285038c Allow setting other handlers in the logging 2018-12-03 16:29:07 -08:00
Ben Letham
b76ace9570 Test type casting of extra regressors 2018-12-03 15:43:13 -08:00
Ben Letham
13d96cff8f Fix type casting for extra regressors, and a shape issue 2018-12-03 15:22:19 -08:00
Ben Letham
91917df8f0 Handle parameter shaping with MCMC and one changepoint (#608) 2018-12-03 14:25:28 -08:00
Ben Letham
e3ad97b8b3 Documentation fixes 2018-12-03 13:25:26 -08:00
Ben Letham
536fe931c6 Add documentation for country holidays 2018-12-03 11:54:55 -08:00
Ben Letham
287fb2f6de Move built-in country holidays to a function (R) 2018-11-30 23:12:19 -08:00
Ben Letham
92f955d25a Move built-in country holidays to a method 2018-11-30 17:20:22 -08:00
Ben Letham
9928dc39ae Fix missing kwarg 2018-11-02 17:27:45 -07:00
jope35
d432ff4a9e add symmetric mean absolute percentage error (#721) 2018-11-02 13:08:40 -07:00
MT
ff65d1431f Fix duplicate kwarg algorithm when newton fallback is selected (#708)
* fix issue #700: duplicate kwarg algorithm

* fix spacing

* provide default to dict pop
2018-10-23 12:02:43 -07:00
S-Katagiri
e63f8cdfbd change extra_regressors to OrderedDict (#688) 2018-10-18 18:07:42 -07:00
Florian Schäfer
55ca33891e Figsize argument (#706)
* Add 'figsize' argument to all plotting methods

* Add docstrings for 'figsize' arguments
2018-10-18 18:04:53 -07:00
ziye666
95fa4460a9 Fix bug about holiday year different from input year and others (#670)
* Allow both both hoidays and append holidays

Match holidays in predict and fit

Add test for append_holiday features; minor fixes

Add column name validation for append_holidays names; allow only one country

Fix bug about holiday year different from input year and also other bugs

Change function description

Add append holiday feature for R

* Add test for R/Pyrhon; fix bugs
2018-10-18 17:40:17 -07:00
Ben Letham
c1a3839382 Remove deprecated methods 2018-08-27 14:06:10 -07:00
Ben Letham
9f86b9e04b now a dev version 2018-08-27 14:02:57 -07:00
ziye666
817f0306a4 Modification of holiday features (#644)
* Allow both both hoidays and append holidays; match holidays in predict and fit

* Allow both both hoidays and append holidays; match holidays in predict and fit

* Add test for append_holiday features; minor fixes

* Add column name validation for append_holidays names; allow only one country
2018-08-27 13:52:34 -07:00
Kevin Wilson
8d804fce0c Explicitly use 64-bit integers in plot functions (#577)
If this is installed on a 32-bit system (rare nowadays, but they still exist) then the conversion to `int` from `timedelta64[ns]` in `plot_cross_validation_metric` will fail. This patch explicitly uses an `np.int64` for this conversion.
2018-06-18 14:15:16 -07:00
Ben Letham
a5869505c0 Fix unittest for Py3.6 ordered dicts 2018-06-11 15:18:40 -07:00
Ben Letham
107f74f0f2 Allow constant extra regressors 2018-06-01 14:53:45 -07:00
bl
371e8a3bf4 Version bump 2018-05-30 17:02:47 -07:00
bl
f8775433c9 Remove vestigial comments, structure imports 2018-05-30 16:35:17 -07:00
bl
b96800e423 Replace assertions with error messages 2018-05-30 14:36:36 -07:00
bl
1b91fa3064 Fit if constant history and logistic growth 2018-05-30 14:33:04 -07:00
Ben Letham
218283f157 Simplify logic/interfaces for cross_validation, to better handle irregularly spaced data and actually respect initial window 2018-05-30 12:09:54 -07:00
Ben Letham
cdc313584e Switch future changepoint generation to fully continuous model 2018-05-29 21:47:11 -07:00
Ben Letham
7277e6c3b2 Better error messaging for required columns ds and y 2018-05-29 16:17:59 -07:00
Ben Letham
cbe1f5e623 Documentation and plot fix for multiplicative seasonality 2018-05-28 12:37:23 -07:00
Ben Letham
68ff9e577d Fix issue in Python when changepoint_range=1 2018-05-25 17:00:27 -07:00
Ben Letham
cb0b47994b Validation and tests for setting range for automatic changepoints 2018-05-25 16:45:24 -07:00
Marc Ferradou
ba1bac834e Adding changepoint threshold (#299) 2018-05-25 15:53:19 -07:00
Ben Letham
6d2e93c8bc Fix pandas deprecation warning for as_matrix 2018-05-25 15:44:05 -07:00
Ben Letham
7c010aac51 Multiplicative seasonality (R) 2018-05-15 10:07:38 -07:00
Ben Letham
f1e24d3c2c Show multiplicative seasonality as percent in plots (Py) 2018-05-11 17:54:29 -07:00
Ben Letham
8d8c5b41ce Multiplicative seasonality (Py) 2018-05-09 12:25:29 -07:00
Ben Letham
b9923fd9fd Compute and store binary matrix of which seasonalities/regressors correspond to which columns in the feature matrix (Py) 2018-05-07 17:09:02 -07:00
Ben Letham
8e8e04858a Move copy test to test_diagnostics 2018-05-04 16:15:43 -07:00
Ben Letham
55d7d1e62d Single stan model with both trends (Py) 2018-05-04 16:04:29 -07:00
Ben Letham
b052b56d33 Refactor cross validation metrics for rolling window, add visualization, put example in notebook (R) 2018-05-04 15:07:35 -07:00
Ben Letham
8198afe17a Add a visualiztion of cross validation prediction performance vs. horizon 2018-05-04 11:21:40 -07:00
Ben Letham
7179ae3a38 Add RMSE as cross validation metric 2018-05-04 10:24:15 -07:00
Ben Letham
3e59bbdc84 Compute cross validation performance metrics on a rolling window 2018-05-03 19:48:41 -07:00
Ben Letham
994db64942 Refactor diagnostic metrics to allow/include grouping by horizon (Py) 2018-05-03 17:39:31 -07:00
Ben Letham
3afdaaf4e1 Move copy from method to function in diagnostics file 2018-05-03 11:42:10 -07:00
Ben Letham
3da46503ed Add utility for plotting changepoints (Py), and put in plotting file (R and Py) 2018-05-03 11:10:11 -07:00
Ben Letham
7c95c62cf0 Move plotting into a separate file (Py) 2018-05-03 10:23:56 -07:00
Ben Letham
0c30f6efcf Merge in some minor fixes from master 2018-04-20 18:48:21 -07:00
Ben Letham
7f9e4b80c1 Read install_requires from requirements.txt, and make things work without matplotlib installed 2018-02-02 17:10:44 -08:00
Todd Farrell
130eb7fe97 Error metrics python v2 (#414)
* adding changes to python error metrics to new branch

* adding diagnosts to a new base branch v0.3

* adding code with broken out function definitions for each metric and handling of model for calculating insample and outsample metrics.
2018-02-02 15:52:09 -08:00
Ben Letham
014b3b5919
Merge bugfixes from master into v0.3 (#393)
* Update memory requirement description per #326

* Fix R warning with extra regressor; disallow constant extra regressors.

* Fix unit test broken in new pandas

* Fix diagnostics unit tests for new pandas

* Fix copy with extra seasonalities / regressors Py

* Fix copy with extra seasonalities / regressors R

* Fix weekly_start and yearly_start in R plot_components

* Fix plotting in pandas 0.21 by using pydatetime instead of numpy

* Version bump

* Update README for new version

* Fix missing columns in SHF with extra regressor
2017-12-22 16:30:18 -08:00
Ben Letham
e78f583f90
Merge in bugfixes from master (#349)
* Update memory requirement description per #326

* Fix R warning with extra regressor; disallow constant extra regressors.

* Fix unit test broken in new pandas

* Fix diagnostics unit tests for new pandas

* Fix copy with extra seasonalities / regressors Py

* Fix copy with extra seasonalities / regressors R

* Fix weekly_start and yearly_start in R plot_components

* Fix plotting in pandas 0.21 by using pydatetime instead of numpy
2017-11-08 10:09:08 -08:00
bletham
a43cfe8995 Fix component plot with logistic floor 2017-10-10 21:24:23 -07:00
Ben Letham
58173861b1 Fix scale<=0 error in old numpy versions for constant histories 2017-09-25 17:40:36 -07:00
Ben Letham
230b2ca6e0 Lint fixes 2017-09-25 17:34:27 -07:00
Ben Letham
2ab01c5d77 Fix flaky unit test 2017-09-08 07:59:52 -07:00
bl
2e9768348b Version bump 2017-09-02 13:28:30 -07:00
bl
2f9b20b2d3 Documentation for cross validation 2017-09-02 10:53:38 -07:00
Ben Letham
439efb7209 Graceful error on empty input dataframes 2017-09-01 15:50:19 -07:00
Ben Letham
8066634cb4 Refactor setup_dataframe R 2017-09-01 12:27:23 -07:00
Ben Letham
2ddcf54930 Saturating minimum R 2017-09-01 11:16:59 -07:00
Ben Letham
66ea9444eb Custom seasonality prior scales R, handle NAs in holiday priors 2017-09-01 10:04:20 -07:00
Ben Letham
ddbb353278 Custom prior scales R 2017-08-31 10:56:06 -07:00
Ben Letham
4523315ffc Lint fixes 2017-08-28 11:38:02 -07:00
bletham
cc3238acb7 Saturating minimum for logistic growth Py 2017-08-28 09:06:00 -07:00
bl
8d27643339 Custom seasonality priors Py 2017-08-27 14:32:39 -07:00
bletham
a620a6c9f9 Custom prior scales for holidays Py 2017-08-26 23:29:10 -07:00
bletham
3c09448018 Add cross-validation functions in R 2017-08-26 14:31:33 -07:00
bletham
509666d1d2 Speed up diagnostics unit tests 2017-08-22 14:14:46 -07:00
bletham
047a0c3c23 Replace deprecated pandas .ix 2017-08-19 21:26:59 -07:00
bletham
e4ec600da4 Handle constant y in history 2017-08-19 14:03:00 -07:00
bletham
0b4ec4a9b3 Limit n_changepoints to number of observations. 2017-08-19 11:20:53 -07:00
Nagi Teramo
79d0793ce4 Implement cross-validation of time series(a rolling forecast origin) (#261)
* Resolve conflict

* Change comments and add error column to output DataFrame

* Change file structure

* Update

* Modified diagnostics

* Update diagnostics.py following the advice on Github

* Add tests and documentation

* Change copy method into Prophet class and reflect comments
2017-08-10 11:14:23 -07:00
bl
b76ebf18bb documentation update 2017-07-29 17:36:03 -07:00
bl
3060536563 Merge branch 'v0.2' of https://github.com/facebookincubator/prophet into v0.2 2017-07-21 07:05:53 -07:00
bl
8f1607cd93 Extra regressors Py 2017-07-21 07:05:16 -07:00
Ben Letham
ff1dbcf38d Alternative formulation for logistic growth initialization 2017-07-17 11:13:22 -07:00
Ben Letham
796b0f8037 Consolidate dataframe validation logic 2017-07-11 16:56:28 -07:00
Ben Letham
fb517b53d6 lint fixes 2017-07-11 16:51:29 -07:00
Ben Letham
d48b70b106 Merge remote-tracking branch 'origin/master' into v0.2 2017-07-11 11:16:26 -07:00
bl
093b4b7eec R sub-daily data documentation, bugfixes, and unit tests 2017-07-10 22:57:13 -07:00
bl
b07d345155 Bugfix for add_seasonality 2017-07-05 20:15:00 -07:00
bl
707c885275 Add custom seasonalities (Py) 2017-07-04 22:39:57 -07:00
bl
ec497ffba8 Handle holidays with subdaily data 2017-07-04 20:32:42 -07:00
bl
4677dd4da3 Unit tests for daily seasonality (Py) 2017-07-04 19:21:34 -07:00
bl
995fda07a9 Posterior samples function Py 2017-07-04 18:27:57 -07:00
bl
b3017c025f Generalize seasonality representation (Python) 2017-07-04 11:06:03 -07:00
bl
03d3ec9f2e Fix notebook Makefile and various typos 2017-07-04 08:39:49 -07:00
Ben Letham
825108b226 Functional daily seasonality (#239) 2017-07-04 08:24:54 -07:00
Arturo Filastò
f1ef4cc190 Add support for fitting seasonality daily (#135) 2017-07-04 08:12:08 -07:00
bl
1339aada96 Check for Inf values in history; roxygen version bump. 2017-07-04 01:12:22 -07:00
bl
8383d3bea6 Check for NULL in ds column 2017-07-04 00:26:22 -07:00
bl
f7becb0942 Fall back to Newton optimizer if LBFGS fails 2017-07-04 00:06:53 -07:00
bl
3ebedb1110 Use abs for scaling y 2017-07-03 21:29:38 -07:00
Ben Letham
4f9e0af51e Fix whitespace issue 2017-06-21 14:40:18 -07:00
Hasil Sharma
283e9be5e0 Set verbosity for Printing Meta Information (#197)
* Set verbosity for Printing Meta Information (#188)

* Fixed Indent and Removed Typos
2017-06-21 14:37:07 -07:00
Ben Letham
7c30a4dcce Typo fix 2017-05-15 15:31:13 -07:00
Ben Letham
6a62a0e3e4 Revert "Fix typo in comment (#180)" (#189)
This reverts commit 0892b4b9bf.
2017-05-15 15:29:11 -07:00
Ran
0892b4b9bf Fix typo in comment (#180)
`n.changepoints` changed to `n_changepoints`.
The first follows R's coding convention but is
incorrect Python.
2017-05-15 15:28:31 -07:00
Ben Letham
5474fe3bd3 style/comment fixes 2017-05-03 17:06:20 -07:00
Ben Letham
40f6ad64d3 Message for disabling seasonality, Python 2017-04-17 17:24:37 -07:00
Ben Letham
b98ec17668 Add version dunder 2017-04-17 15:20:49 -07:00
Ben Letham
26ca2f7af7 Make plotting interfaces consistent (return figs) 2017-04-17 12:45:44 -07:00
Ben Letham
541dc9a0b0 Update docstring for plot_components 2017-04-15 17:56:43 -07:00
Ben Letham
5971a2369b Loop debug (#168)
* Load Stan models on package load and keep in environment

* Load models on package import
2017-04-13 23:23:44 -07:00
Ben Letham
df4b6158eb Allow shifting the start date of the yearly seasonality plot 2017-04-13 02:08:34 -07:00
Ben Letham
cacfdc635e Allow shifting the start date of the weekly seasonality plot 2017-04-13 01:51:17 -07:00
Ben Letham
d937f47612 Enable seasonalities automatically depending on history length / frequency 2017-04-13 01:25:03 -07:00
Ben Letham
8155143af0 Allow not showing capacity on plots 2017-04-10 22:48:43 -07:00
Ben Letham
208399678c Make component plots work if forecast range is less than seasonality period 2017-04-10 18:20:06 -07:00
Ben Letham
50ddd5bfd3 Docstring fix 2017-04-07 19:11:37 -07:00
Ben Letham
1a7112268e style fixes 2017-04-06 11:47:03 -07:00
Ben Letham
34c0f80684 Only allow a Prophet object to be fit once 2017-04-05 10:44:21 -07:00
Ben Letham
459e0fed6c Document the parameters stored during fitting. 2017-04-03 18:24:54 -07:00
Ben Letham
b999dd4aa4 Add docstring to Python methods, and minor fixes to R documentation. 2017-03-23 17:27:44 +02:00
Ben Letham
5677d8c7ce Store dates from history with y NaN for make_future_dataframe 2017-03-23 15:47:29 +02:00
Ben Letham
1a6b736cca No longer use %-d for strftime since it is not supported in Windows 2017-03-16 16:25:07 +02:00
Ben Letham
2c8419e673 Fix missing m/d on trend component plot. Previously we used MaxNLocator to limit the number of tick marks on the trend and holiday component plots. This was putting the ticks at various points throughout the year, however the tick label showed only the year, which one would incorrectly assume to be Jan 1. This commit removes MaxNLocator and allows matplotlib to set xticks as it pleases, and updates the effected documentation. 2017-03-16 15:43:16 +02:00
Ben Letham
f89faf2c6a Check for valid holiday lower/upper windows 2017-03-12 16:01:02 +02:00