【问题标题】:how to find best order and seasonal_order for sarimax model for different dataset (python)如何为不同数据集(python)找到sarimax模型的最佳顺序和季节性顺序
【发布时间】:2019-10-03 04:32:49
【问题描述】:

我正在尝试根据不同数据集的给定历史数据来预测未来数据。

warnings.filterwarnings("ignore")
mod = sm.tsa.statespace.SARIMAX(
    dataset,
    order=(1,0, 0),
    seasonal_order=(0, 0, 0, 12),
    enforce_stationarity=False,
    enforce_invertibility=False
)
results = mod.fit()

但是对于配置问题,我遇到了错误。然后随机生成订单和季节性订单并检查是否有错误。

p = d = q = range(0, 2)
pdq = list(itertools.product(p, d, q))
seasonal_pdq = [(x[0], x[1], x[2], 12) for x in list(itertools.product(p, d, q))]
np.random.shuffle(pdq)
np.random.shuffle(seasonal_pdq)
results, finished = False, False
for iii in pdq:
    for jjj in seasonal_pdq:
        try:
            warnings.filterwarnings("ignore")
            mod = sm.tsa.statespace.SARIMAX(
                dataset,
                order=iii,
                seasonal_order=jjj,
                enforce_stationarity=False,
                enforce_invertibility=False
            )
            results = mod.fit()
            dataset_pred_uc = results.get_forecast(steps=int(len(dataset)*0.8))
            # prediction = dataset_pred_uc.predicted_mean
            finished = True
        except Exception as error:
            continue
    if(finished):
        break

但我每次都得到不同的结果。有时结果非常好,有时比我想象的还要糟糕。

如何解决此类问题,其中数据集值是任意的。

【问题讨论】:

    标签: python python-3.x prediction


    【解决方案1】:

    为了每次得到相同的结果,随机数应该每次都从同一个种子产生。因此,请在您的代码中设置 random.seed(例如,np.random.seed(1234))。

    【讨论】:

      猜你喜欢
      • 2020-10-19
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      相关资源
      最近更新 更多