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

理解fbprophet cross_validation交叉验证输出与性能指标疑问

性能指标表与行数问题说明

  • performance_metrics 的每一行对应不同预测时长(horizon)下的聚合性能结果:horizon指预测的时间点距离切分点(cutoff)的天数,比如horizon=3就代表所有cutoff后第3天的预测结果对应的性能统计。
  • 你看到输出是horizon 2到20共19行,是因为Prophet会自动过滤掉没有匹配到真实值的horizon样本,大概率是你的原始数据时间间隔不是严格1天1条,horizon=1的位置没有有效匹配的预测-真实值对,所以被自动剔除了。

交叉验证参数理解

你对三个参数的认知基本正确:

  • initial:每个cutoff之前用于训练模型的历史数据时长,你设置的500天符合预期。
  • period:两个相邻cutoff的时间间隔,官方推荐设置为horizon的1/3到1/2,你设置的10天符合推荐规则。
  • horizon:每个cutoff之后需要预测的时间长度,你设置的20天没有问题,17个cutoff最多产生17*20=340条交叉验证样本。

性能指标相关疑问解答

  • coverage指标含义:Prophet默认输出80%置信区间(可通过interval_width参数调整),coverage代表真实值落在对应预测置信区间内的样本占比。这个值越接近你设置的置信区间宽度,说明模型的不确定性预估越准确,比如你用默认0.8置信区间,coverage在0.78-0.82之间都属于理想情况。
  • 指标计算逻辑:所有的MAE、MAPE、RMSE、coverage等指标,都是按horizon维度聚合计算的。以horizon=5的MAE为例,会先提取所有17个cutoff下,各自预测的cutoff后第5天的结果,和对应真实值计算绝对误差,再取平均值得到最终结果。
  • 17次cutoff的预测误差当然存在差异,performance_metrics默认输出的是按horizon聚合后的平均水平,如果你需要查看单cutoff的性能,直接对df_cv按cutoff分组自行计算误差即可。

全量训练的准确率说明

你提到的“fbprophet不需要拆分训练集和测试集”的认知存在偏差:模型本身拟合不需要拆分,但要评估泛化准确率必须做样本拆分,你现在用的交叉验证就是Prophet官方推荐的准确率评估方案,得到的聚合指标就是你用全量数据训练后模型的预期泛化性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:15:03