2301_81214450 2025-01-22 23:01 采纳率: 0%
浏览 235

使用Prophet模型拟合数据时报错Error during optimization!

使用Prophet模型拟合数据时报错:error: terminated by signal 3221225467、Optimization terminated abnormally. Falling back to Newton.
一开始无法调用Prophet模型,在安装cmdstan之后解决了,但是在拟合数据df的时候,再次报错:
编辑环境:anaconda python 3.9.19
编辑器:VS Code、Jupyter

--Name____Version____Build________  Channel
cmdstan____ 2.36.0 ____  h8f0442e_0____ unknown
cmdstanpy ____  1.2.5  ____   pypi_0 _______  pypi

查了很多资料,找不到解决办法,请大家帮忙看看。

#输出是:
22:45:28 - cmdstanpy - INFO - Chain [1] start processing
22:45:28 - cmdstanpy - INFO - Chain [1] done processing
22:45:28 - cmdstanpy - ERROR - Chain [1] error: terminated by signal 3221225467 
Optimization terminated abnormally. Falling back to Newton.
22:45:28 - cmdstanpy - INFO - Chain [1] start processing
22:45:28 - cmdstanpy - INFO - Chain [1] done processing
22:45:28 - cmdstanpy - ERROR - Chain [1] error: terminated by signal 3221225467 

#报错部分是:
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
d:\anaconda3\envs\DL\lib\site-packages\prophet\models.py in fit(self, stan_init, stan_data, **kwargs)
    120         try:
--> 121             self.stan_fit = self.model.optimize(**args)
    122         except RuntimeError as e:

d:\anaconda3\envs\DL\lib\site-packages\cmdstanpy\model.py in optimize(self, data, seed, inits, output_dir, sig_figs, save_profile, algorithm, init_alpha, tol_obj, tol_rel_obj, tol_grad, tol_rel_grad, tol_param, history_size, iter, save_iterations, require_converged, show_console, refresh, time_fmt, timeout, jacobian)
    658             else:
--> 659                 raise RuntimeError(msg)
    660         mle = CmdStanMLE(runset)

RuntimeError: Error during optimization! Command 'D:\anaconda3\envs\DL\Lib\site-packages\prophet\stan_model\prophet_model.bin random seed=21568 data file=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\sh41vlv4.json init=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\9makqtkf.json output file=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\prophet_model0o3vozaz\prophet_model-20250122224528.csv method=optimize algorithm=lbfgs iter=10000' failed: 

During handling of the above exception, another exception occurred:

RuntimeError                              Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_25676\3138887884.py in <module>
      1 model = Prophet()
----> 2 model.fit(df)

d:\anaconda3\envs\DL\lib\site-packages\prophet\forecaster.py in fit(self, df, **kwargs)
   1230             self.params = self.stan_backend.sampling(stan_init, dat, self.mcmc_samples, **kwargs)
   1231         else:
-> 1232             self.params = self.stan_backend.fit(stan_init, dat, **kwargs)
...
--> 659                 raise RuntimeError(msg)
    660         mle = CmdStanMLE(runset)
    661         return mle

RuntimeError: Error during optimization! Command 'D:\anaconda3\envs\DL\Lib\site-packages\prophet\stan_model\prophet_model.bin random seed=21306 data file=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\rcbm2_y7.json init=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\gec1luoc.json output file=C:\Users\22410\AppData\Local\Temp\tmpdf9wcwa_\prophet_modeli1let55r\prophet_model-20250122224528.csv method=optimize algorithm=newton iter=10000' failed: 
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from prophet import Prophet

df = pd.read_csv('data_ar.csv')
df = (df.iloc[0:359,:]).iloc[::-1]
# 将 'date' 列转换为日期格式
df['ds'] = pd.to_datetime(df['ds'])
df.head()  # df有两列:‘ds’、‘y’,满足Prophet模型。

plt.plot(df['y'])

# 检查数据
print(df.describe())
print(df.isnull().sum()) # 数据无缺失

model = Prophet()
model.fit(df)
  • 写回答

4条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您提供的错误信息来看,问题似乎与Prophet模型在优化过程中的异常终止有关。这可能是由于多种原因导致的,包括但不限于数据问题、模型参数问题或计算资源问题。以下是一些可能的解决方案和建议:

    1. 检查数据格式和质量:确保您的数据格式正确,并且没有异常值或缺失值。检查'ds'列是否为正确的日期格式。
    2. 调整模型参数:尝试调整Prophet模型的参数,特别是与季节性、趋势和节假日相关的参数。这些参数可能会影响模型的优化过程。
    3. 更新或重新安装库:确保您使用的Prophet和cmdstan库是最新版本。有时,更新库可以解决一些已知的问题。
    4. 增加计算资源:优化过程可能需要大量的计算资源。如果您的系统资源有限,尝试增加内存或计算资源,或者在一个更强大的系统上运行代码。
    5. 简化模型:如果问题仍然存在,尝试使用更简单的模型配置进行拟合,以确定问题是否与特定的配置或参数设置有关。
    6. 查看详细输出:查看Prophet模型在优化过程中的详细输出,这可能会提供更多关于问题原因的线索。您可以尝试增加输出日志的详细程度,以获取更多信息。
    7. 寻求社区帮助:如果上述方法都无法解决问题,您可以尝试在相关的数据科学社区或论坛上提问,寻求更专业的帮助。

    此外,根据您提供的代码和环境信息,确保您的Python环境和依赖项都是兼容的,并且正确安装了所有必要的库和依赖项。

    请注意,由于问题的复杂性,以上建议可能不一定能够直接解决您的问题。但是,希望这些建议能帮助您更好地诊断和解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月22日