mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-09-06 20:40:37 +00:00
198 lines
310 KiB
Text
198 lines
310 KiB
Text
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 1,
|
||
|
|
"metadata": {
|
||
|
|
"block_hidden": true,
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [],
|
||
|
|
"source": [
|
||
|
|
"%load_ext rpy2.ipython\n",
|
||
|
|
"%matplotlib inline\n",
|
||
|
|
"from fbprophet import Prophet\n",
|
||
|
|
"import pandas as pd"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 2,
|
||
|
|
"metadata": {
|
||
|
|
"block_hidden": true,
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stderr",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: Loading required package: Rcpp\n",
|
||
|
|
"\n",
|
||
|
|
" warnings.warn(x, RRuntimeWarning)\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R\n",
|
||
|
|
"library(prophet)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"Prophet doesn't strictly require daily data, but you can get strange results if you ask for daily forecasts from non-daily data and fit seasonalities. Here we forecast US retail sales volume for the next 10 years:"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 3,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
||
|
|
"init = user\n",
|
||
|
|
"save_iterations = 1\n",
|
||
|
|
"init_alpha = 0.001\n",
|
||
|
|
"tol_obj = 1e-12\n",
|
||
|
|
"tol_grad = 1e-08\n",
|
||
|
|
"tol_param = 1e-08\n",
|
||
|
|
"tol_rel_obj = 10000\n",
|
||
|
|
"tol_rel_grad = 1e+07\n",
|
||
|
|
"history_size = 5\n",
|
||
|
|
"seed = 21092286\n",
|
||
|
|
"initial log joint probability = -2.41173\n",
|
||
|
|
"Optimization terminated normally: \n",
|
||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nXE9fECTCIQiCIAiniC/
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"df <- read.csv('../examples/example_retail_sales.csv')\n",
|
||
|
|
"m <- prophet(df)\n",
|
||
|
|
"future <- make_future_dataframe(m, periods = 3652)\n",
|
||
|
|
"fcst <- predict(m, future)\n",
|
||
|
|
"plot(m, fcst);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 4,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nv980RPqVZijAU1pgz2f
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fbb79c290d0>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"df = pd.read_csv('../examples/example_retail_sales.csv')\n",
|
||
|
|
"m = Prophet().fit(df)\n",
|
||
|
|
"future = m.make_future_dataframe(periods=3652)\n",
|
||
|
|
"fcst = m.predict(future)\n",
|
||
|
|
"m.plot(fcst);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"The forecast here seems very noisy. What's happening is that this particular data set only provides monthly data. When we fit the yearly seasonality, it only has data for the first of each month and the seasonality components for the remaining days are unidentifiable and overfit. When you are fitting Prophet to monthly data, only make monthly forecasts, which can be done by passing the frequency into make_future_dataframe:"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 5,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\n4KRJk0aMGJFMJu+//37
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"future <- make_future_dataframe(m, periods = 120, freq = 'm')\n",
|
||
|
|
"fcst <- predict(m, future)\n",
|
||
|
|
"plot(m, fcst)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 6,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nZZSORbuY69Pe327qkSZ
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fbb71e9c190>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"future = m.make_future_dataframe(periods=120, freq='M')\n",
|
||
|
|
"fcst = m.predict(future)\n",
|
||
|
|
"m.plot(fcst);"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"metadata": {
|
||
|
|
"kernelspec": {
|
||
|
|
"display_name": "Python 2",
|
||
|
|
"language": "python",
|
||
|
|
"name": "python2"
|
||
|
|
},
|
||
|
|
"language_info": {
|
||
|
|
"codemirror_mode": {
|
||
|
|
"name": "ipython",
|
||
|
|
"version": 2
|
||
|
|
},
|
||
|
|
"file_extension": ".py",
|
||
|
|
"mimetype": "text/x-python",
|
||
|
|
"name": "python",
|
||
|
|
"nbconvert_exporter": "python",
|
||
|
|
"pygments_lexer": "ipython2",
|
||
|
|
"version": "2.7.13"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 0
|
||
|
|
}
|