Prophet 之使用篇(七)——非日数据



0

本使用说明教程主要翻译整理自 Prophet 的官方说明文档之 “非日数据”

教程中使用的数据集可在 Prophet 的 github 主页 中的 examples 文件夹 内下载得到。

Prophet 处理的对象并非必须是日数据,不过要是试图通过非日数据来预测每日的情况或拟合季节性效应,往往会得到奇奇怪怪的结果。下面使用美国零售业销售量数据来预测未来 10 年的情况:

1
2
3
4
5
6
# Python
df = pd.read_csv('./examples/example_retail_sales.csv')
m = Prophet().fit(df)
future = m.make_future_dataframe(periods=3652)
fcst = m.predict(future)
m.plot(fcst);
1
2
3
4
5
6
# R
df <- read.csv('./examples/example_retail_sales.csv')
m <- prophet(df)
future <- make_future_dataframe(m, periods = 3652)
fcst <- predict(m, future)
plot(m, fcst);


1

预测结果看起来非常杂乱,原因正是在于这个特殊的数据集使用的是月数据。当我们拟合年度效应时,只有每个月第一天的数据,而且对于其他天的周期效应是不可测且过拟合的。当你使用 Prophet 拟合月度数据时,可以通过在 make_future_dataframe 中传入频率参数只做月度的预测。

1
2
3
4
# Python
future = m.make_future_dataframe(periods=120, freq='M')
fcst = m.predict(future)
m.plot(fcst);
1
2
3
4
# R
future <- make_future_dataframe(m, periods = 120, freq = 'm')
fcst <- predict(m, future)
plot(m, fcst)


2


转载请注明来自 Vector Blog



当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器