Facebook NeuralProphet - 生成模型文件

Facebook NeuralProphet - Generating model file

试图了解我是否可以使用 pickle 将模型存储在文件系统中。

from neuralprophet import NeuralProphet
import pandas as pd
import pickle

df = pd.read_csv('data.csv')
pipe = NeuralProphet()
pipe.fit(df, freq="D")
pickle.dump(pipe, open('model/pipe_model.pkl', 'wb'))

问题:- 加载多个 CSV 文件。我有多个 CSV 文件。我如何将多个 CSV 文件转储到同一个 pickle 文件中并稍后加载以进行预测?

我认为这里的正确答案是 sqlite。 SQLite 就像一个数据库,但它作为一个独立的文件存储在磁盘上。

您的用例的好处是您可以将收到的新数据附加到文件的 table 中,然后根据需要读取它。执行此操作的代码非常简单:

import pandas as pd
import sqlite3
# Create a SQL connection to our SQLite database
# This will create the file if not already existing
con = sqlite3.connect("my_table.sqlite")

# Replace this with read_csv
df = pd.DataFrame(index = [1, 2, 3], data = [1, 2, 3], columns=['some_data'])

# Simply continue appending onto 'My Table' each time you read a file
df.to_sql(
    name = 'My Table',
    con = con,
    if_exists='append'
)

请注意,SQLite 的性能在行数非常大后会下降,在这种情况下,将数据缓存为 parquet 文件或其他快速压缩格式,然后在训练时将它们全部读入可能会更好合适。

当您需要数据时,只需阅读 table 中的所有内容:

pd.read_sql('SELECT * from [My Table]', con=con)