【问题标题】:Python statsmodels OLS: how to save learned model to filePython statsmodels OLS:如何将学习模型保存到文件
【发布时间】:2013-05-01 11:41:24
【问题描述】:

我正在尝试使用 Python 的 statsmodels 库学习一个普通的最小二乘模型,如 here 所述。

sm.OLS.fit() 返回学习模型。有没有办法将其保存到文件并重新加载?我的训练数据很大,学习模型大约需要半分钟。所以我想知道 OLS 模型中是否存在任何保存/加载功能。

我在模型对象上尝试了repr() 方法,但它没有返回任何有用的信息。

【问题讨论】:

    标签: python least-squares statsmodels


    【解决方案1】:

    模型和结果实例都有保存和加载的方法,所以不需要直接使用pickle模块。

    编辑以添加示例:

    import statsmodels.api as sm
    
    data = sm.datasets.longley.load_pandas()
    
    data.exog['constant'] = 1
    
    results = sm.OLS(data.endog, data.exog).fit()
    results.save("longley_results.pickle")
    
    # we should probably add a generic load to the main namespace
    from statsmodels.regression.linear_model import OLSResults
    new_results = OLSResults.load("longley_results.pickle")
    
    # or more generally
    from statsmodels.iolib.smpickle import load_pickle
    new_results = load_pickle("longley_results.pickle")
    

    编辑 2 我们现在在 master 的主 statsmodels API 中添加了一个 load 方法,所以你可以这样做

    new_results = sm.load('longley_results.pickle')
    

    【讨论】:

    • 此外,如果您仅使用腌制结果和模型进行预测,则可以剥离训练数据(但许多方法不再适用)statsmodels.sourceforge.net/devel/generated /statsmodels.regression.linear_model.RegressionResults.save.html
    • @jseabold 你能举个例子吗?
    • 当然。编辑添加示例。
    • jseabold:我尝试了sm.load 方法,但解释器抱怨该模块没有“加载”属性。我应该使用新版本的 statsmodels 吗?
    • 它在 github 上的 master 中,将在下一个版本中。如果你想现在使用它,你需要从源代码安装。
    【解决方案2】:

    我已经安装了 statsmodels 库,发现可以在 python 中使用pickle module 保存值。

    模型和结果可通过保存/加载进行pickle,可选择保存模型数据。 [source]

    举个例子:

    假设您将结果保存在变量 results 中:

    保存文件:

    import pickle    
    with open('learned_model.pkl','w') as f:
      pickle.dump(results,f)
    

    读取文件:

    import pickle
    with open('learned_model.pkl','r') as f:
      model_results = pickle.load(f)
    

    【讨论】:

      猜你喜欢
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2017-11-02
      相关资源
      最近更新 更多