我有一个每周作业,它从 csv 文件中读取数据并基于 NeuralProphet 创建模型并转储 pickle 文件以供以后使用。
from neuralprophet import NeuralProphet
from matplotlib import pyplot as plt
import pandas as pd
import pickle
data_location = /input_data/
df = pd.read_csv(data_location + 'input.csv')
np = NeuralProphet()
model = np.fit(df, freq="5min")
with open('model/neuralprophet_model.pkl', "wb") as f:
# dump information to that file
pickle.dump(model, f)
上面的 python 代码每周运行一次,它将模型文件转储到一个文件中。
现在,我有一个不同的 python 文件,它加载 pickle 文件并预测未来日期。
可以说,我在 csv 文件中有过去 2 年的数据,并从中创建了模型。现在,我想根据上述模型预测未来。
from neuralprophet import NeuralProphet
import pandas as pd
import pickle
with open('model/neuralprophet_model.pkl', "rb") as f:
model = pickle.load(file)
# To get a next 1 hour prediction by 5mins interval
future = model.make_future_dataframe(periods=12, freq='5min')
forecast = model.predict(future)
它是否正确?在这里,我没有将数据传递给 make_future_dataframe。但是,所有互联网示例也都传递了数据。由于数据是用来训练模型的,所以我在这里只使用模型。为什么我们还需要在这里传递数据,因为我们使用基于模型的预测(对于某个未知的未来日期)?