WEBKT

Prophet 模型自定义回归量:电商销量预测中的天气因素实战

19 0 0 0

Prophet 模型自定义回归量:电商销量预测中的天气因素实战

啥是 Prophet?

为啥要自定义回归量?

怎么加自定义回归量?

1. 准备数据

2. 构建模型

3. 进行预测

4. 查看结果

如何选择合适的回归量?

如何评估回归量的贡献?

实战案例:天气因素对电商销量的影响

1. 数据准备

2. 模型构建与训练

3. 预测

4. 结果分析

总结

Prophet 模型自定义回归量:电商销量预测中的天气因素实战

大家好,我是你们的“AI掘金者”。今天咱们聊聊 Facebook 开源的时间序列预测神器 Prophet,以及如何用它来搞定电商销量预测,特别是如何把“天气”这个磨人的小妖精给塞进模型里。

啥是 Prophet?

先简单过一下,Prophet 是一个基于加法模型的时间序列预测工具,它特别擅长处理具有季节性和节假日效应的数据。简单来说,它就像一个经验丰富的算命先生,能根据过去的规律,预测未来的走势。对我们这些搞数据分析的,尤其是需要预测销量、用户增长等等的,简直是福音!

为啥要自定义回归量?

Prophet 本身已经很强大了,但有时候,我们还需要考虑一些“特殊情况”。比如说,电商销量,除了受季节、节假日影响,还可能跟天气密切相关。大热天,冰淇淋销量暴涨;下雨天,雨伞销量飙升。这些“特殊情况”,就是我们需要自定义的“回归量”。

想象一下,如果你只告诉 Prophet “历史销量”数据,它可能只会傻傻地预测“明年这个时候,销量跟今年差不多”。但如果你告诉它“今年这个时候特别热,比往年同期高了 5 度”,它就能更聪明地预测“冰淇淋销量可能会比往年高很多”。

怎么加自定义回归量?

别担心,Prophet 加回归量非常简单,就像搭积木一样。我们一步步来:

1. 准备数据

首先,我们需要准备好数据。假设我们要预测某电商平台冰淇淋的销量,我们需要以下数据:

  • ds 列: 日期,格式为 YYYY-MM-DD。
  • y 列: 冰淇淋销量。
  • temp 列: 每日平均气温(这就是我们要加的回归量)。

数据大概长这样:

ds,y,temp
2023-01-01,100,5
2023-01-02,110,6
2023-01-03,120,7
...
2024-01-01,150,8
2024-01-02,160,9
...

2. 构建模型

from prophet import Prophet
# 创建 Prophet 模型实例
model = Prophet()
# 添加回归量
model.add_regressor('temp')
# 拟合模型
model.fit(df) # df 就是上面准备好的数据

就这么简单!add_regressor('temp') 这一行,就把“气温”这个回归量加进去了。

3. 进行预测

# 构建未来时间段的数据框
future = model.make_future_dataframe(periods=365) # 预测未来 365 天
# 添加未来时间段的气温数据
future['temp'] = ... # 这里需要你自己填充未来 365 天的气温数据
# 进行预测
forecast = model.predict(future)

forecast 就是预测结果,里面包含了预测值、置信区间等等。

4. 查看结果

# 查看预测结果
print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail())
# 绘制预测图
fig1 = model.plot(forecast)
# 绘制成分图
fig2 = model.plot_components(forecast)

model.plot_components(forecast) 可以绘制成分图,看看各个因素(季节性、节假日、回归量)对预测结果的贡献。

如何选择合适的回归量?

选回归量,就像选对象,要“合适”才行。一般来说,可以从以下几个方面考虑:

  1. 相关性: 回归量要跟预测目标有强相关性。比如,气温跟冰淇淋销量相关性很强,但跟电脑销量可能就没啥关系。
  2. 可获取性: 回归量的数据要容易获取。比如,天气数据很容易获取,但竞争对手的营销策略就很难获取。
  3. 可预测性: 回归量本身要容易预测。比如,未来几天的天气预报比较准确,但未来几个月的股市走势就很难预测。

如何评估回归量的贡献?

加了回归量,怎么知道它有没有用?我们可以通过以下几种方法评估:

  1. 对比实验: 分别构建带回归量和不带回归量的模型,对比它们的预测效果。如果带回归量的模型预测更准,说明回归量有用。
  2. 成分图: 查看 model.plot_components(forecast) 绘制的成分图,看看回归量的贡献有多大。
  3. 回归系数: Prophet 会计算每个回归量的系数,系数越大,说明回归量的贡献越大。可以通过 model.params 查看回归系数。

实战案例:天气因素对电商销量的影响

现在,我们来一个完整的实战案例,看看如何用 Prophet 预测电商冰淇淋销量,并考虑天气因素。

1. 数据准备

import pandas as pd
# 读取数据
df = pd.read_csv('ice_cream_sales.csv') # 假设数据文件名为 ice_cream_sales.csv
# 数据预处理
df['ds'] = pd.to_datetime(df['ds'])
df = df.rename(columns={'sales': 'y'})
print(df.head())

2. 模型构建与训练

from prophet import Prophet
# 创建 Prophet 模型实例
model = Prophet()
# 添加回归量
model.add_regressor('temp')
# 拟合模型
model.fit(df)

3. 预测

# 构建未来时间段的数据框
future = model.make_future_dataframe(periods=30) # 预测未来 30 天
# 添加未来时间段的气温数据(这里用过去 30 天的平均气温代替)
future['temp'] = df['temp'].tail(30).values
# 进行预测
forecast = model.predict(future)

4. 结果分析

# 查看预测结果
print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail())
# 绘制预测图
fig1 = model.plot(forecast)
# 绘制成分图
fig2 = model.plot_components(forecast)
# 查看回归系数
print(model.params)

通过观察预测图、成分图和回归系数,我们就可以评估天气因素对冰淇淋销量的影响了。

总结

Prophet 是一个强大的时间序列预测工具,通过自定义回归量,我们可以将各种外部因素纳入模型,提高预测精度。选择合适的回归量,并评估其贡献,是使用 Prophet 的关键。希望这篇文章能帮助你更好地使用 Prophet,成为时间序列预测高手!

如果你觉得这篇文章有用,别忘了点赞、收藏、转发三连哦!

AI掘金者 Prophet时间序列预测回归量

评论点评

打赏赞助
sponsor

感谢您的支持让我们更好的前行

分享

QRcode

https://www.webkt.com/article/8810