【问题标题】:Facebook-Prophet cross validation with monthly data - Workaround: Pandas timedelta does not support Month and YearsFacebook-Prophet 使用月度数据进行交叉验证 - 解决方法:Pandas timedelta 不支持月和年
【发布时间】:2021-03-19 16:25:07
【问题描述】:

我正在使用 Facebook Prophet 来预测一些基于月度的时间序列数据。

ds           y  
2020-02-01  400.0
2020-03-01  450.0
2020-04-01  0.0 
2020-05-01  225.0

我想使用 cross_validation() 函数来评估我的结果。

from fbprophet.diagnostics import cross_validation,performance_metrics
cv_results = cross_validation(
   model = m,
   initial = pd.to_timedelta(12,unit="M"), 
   horizon = pd.to_timedelta(12,unit="M"))
df_p = performance_metrics(cv_results)

但是我收到以下消息: ValueError:不再支持单位“M”和“Y”,因为它们不代表明确的 timedelta 值持续时间。

有人有解决方法吗?谢谢!

【问题讨论】:

    标签: pandas cross-validation timedelta facebook-prophet


    【解决方案1】:

    我相信 pandas 不再支持超过一天(“D”)的单位。 每当您将 pandas timedelta 用于这些时间单位时,就会出现此问题。

    我建议使用天数乘以 30 天乘以预期月数

    from fbprophet.diagnostics import cross_validation,performance_metrics
    
    cv_results = cross_validation(
       model = m,
       initial = pd.to_timedelta(30*12,unit="D"), 
       horizon = pd.to_timedelta(30*12,unit="D"))
    df_p = performance_metrics(cv_results)```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 2020-12-26
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2015-02-18
      相关资源
      最近更新 更多