目录

 Python API

详细介绍

完整代码:


 Python API

详细介绍

Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。

Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想情况下YYYY-MM-DD表示日期,YYYY-MM-DD HH:MM:SS表示时间戳。y列必须是数字,并表示我们希望预测的测量值。

举个例子,让我们看一下Peyton Manning的维基百科页面每日访问量的时间序列。我们抓取这些数据Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。

Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想情况下YYYY-MM-DD表示日期,YYYY-MM-DD HH:MM:SS表示时间戳。y列必须是数字,并表示我们希望预测的测量值。

举个例子,让我们看一下Peyton Manning的维基百科页面每日访问量的时间序列。佩顿·曼宁(Peyton Manning)提供了一个很好的例子,因为它说明了Prophet的一些特征,比如多季节性、变化的生长速度,以及模拟特殊日子的能力(比如曼宁的季后赛和超级碗出场)。CSV可以在这里找到。

首先,我们将导入数据:使用r中的Wikipediatrend包,Peyton Manning提供了一个很好的例子,因为它说明了Prophet的一些特性,比如多季节性,变化的生长速率,以及模拟特殊日子的能力(比如Manning的季后赛和超级碗出场)。CSV可以在这里找到。

首先我们导入数据:

# Python
import pandas as pd
from prophet import Prophet
# Python
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')
df.head()

                                          Prophet学习(一) Python API实现-LMLPHP

我们通过实例化一个新的Prophet对象来拟合模型。对预测过程的任何设置都传递给构造函数。然后调用它的fit方法并传入历史数据框架。安装需要1-5秒。

# Python
m = Prophet()
m.fit(df)

然后在数据帧上进行预测,其中ds列包含要进行预测的日期。您可以使用帮助方法Prophet.make_future_dataframe获得一个合适的数据帧,它将扩展到指定天数的未来。默认情况下,它还将包括历史记录中的日期,因此我们将看到模型也适合。

# Python
future = m.make_future_dataframe(periods=365)
future.tail()

                                            Prophet学习(一) Python API实现-LMLPHP

predict方法将为未来的每一行分配一个预测值,并将其命名为yhat。如果传入历史日期,它将提供样本内拟合。这里的预测对象是一个新的数据框架,它包括一个包含预测的列,以及用于组件和不确定性区间的列。

# Python
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

           Prophet学习(一) Python API实现-LMLPHP

你可以打电话给先知来预测天气。绘制方法和传入您的预测数据框架。

# Python
fig1 = m.plot(forecast)

Prophet学习(一) Python API实现-LMLPHP

如果您想查看预测组件,可以使用Prophet.plot_components方法。默认情况下,您将看到时间序列的趋势、年度季节性和每周季节性。如果算上假期,你也会在这里看到。

# Python
fig2 = m.plot_components(forecast)

   Prophet学习(一) Python API实现-LMLPHP

一个交互式的预测图和组件可以创建与plot。您需要单独安装plotly 4.0或以上版本,因为默认情况下它不会与prophet一起安装。您还需要安装notebook和ipywidgets包

# Python
from prophet.plot import plot_plotly, plot_components_plotly

plot_plotly(m, forecast)
# Python
plot_components_plotly(m, forecast)

关于每个方法可用选项的更多详细信息可以在文档字符串中找到,例如通过help(Prophet)或help(Prophet.fit)。CRAN上的R参考手册提供了所有可用函数的简明列表,每个函数都有一个Python等效函数。

完整代码:

# Python
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
# Python
df = pd.read_csv('example_wp_log_peyton_manning.csv')
df.head()
print(df.head())
# Python
m = Prophet()
m.fit(df)
# print(m.fit(df))
# Python
future = m.make_future_dataframe(periods=365)
future.tail()
# print(future.tail())

# Python
forecast = m.predict(future)
T = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
# print(T)
# Python
fig1 = m.plot(forecast)

# print(fig1)


# Python
fig2 = m.plot_components(forecast)

# print(fig2)
# Python
from prophet.plot import plot_plotly, plot_components_plotly

plot_plotly(m, forecast)
plt.show()
# print(S)

# Python
plot_components_plotly(m, forecast)

plt.show()


参考: 

【1】prophet官网Quick Start | Prophet (facebook.github.io)

04-13 04:30