You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Prophet做呼叫中心小时级话务量预测结果偏差大排查

问题根因说明

你的代码基础逻辑、数据格式均无问题,预测偏差大完全是Prophet适配小时级预测场景时的参数配置错误导致,具体问题如下:

  • 时间频率错配:make_future_dataframe方法默认时间频率为天级(D),和你的小时级数据集粒度不匹配。你当前设置periods=15时,模型生成的是未来15天的时间序列,而非你需要的15个小时的预测结果,粒度错配直接导致预测结果完全偏离业务实际。
  • 日内季节性未开启:呼叫中心话务量存在极强的日内波动规律(如样例数据中17点话务量骤降,符合上下班时段的业务特征),Prophet默认不会自动开启日季节性拟合,模型学不到小时级的波动规则,自然会出现极大偏差。
  • 可选优化方向:如果业务存在话务量的节假日差异、工作日/周末差异,可手动给模型传入节假日规则,或者调整周/年季节性的拟合参数,进一步提升预测准确率。

你提供的预测异常结果示例如下:
预测结果图

修正后的代码
df.rename(columns={'date':'ds','count':'y'},inplace=True)
df["ds"] = pd.to_datetime(df["ds"])
new_data=df[['ds','y']]

# 适配小时级场景的Prophet配置
model = Prophet(
    daily_seasonality=True, # 开启日内季节性拟合
    weekly_seasonality=True, # 呼叫中心话务量通常存在周度波动,按需开启
    yearly_seasonality=False # 若数据集时间跨度不足1年建议关闭,避免过拟合
)
model.fit(new_data)
# 指定freq='H'生成小时级未来时间序列,periods按实际需要预测的小时数调整
future = model.make_future_dataframe(periods=15, freq='H')
forecast = model.predict(future)
fig = model.plot(forecast, xlabel='ds', ylabel='y')
plt.title('forecasting')
plt.show()
补充说明

如果你的数据集时间跨度超过1年,可将yearly_seasonality调整为True,适配年度维度的话务波动规律。

内容的提问来源于stack exchange,提问作者Sandeepa Kariyawasam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:36:02