在Python内存错误中使用cPickle进行多元回归statsmodel公式

时间:2017-04-20 16:38:11

标签: python memory pickle statsmodels

我有一个来自statsmodels的多元线性回归模型,我想保存这个模型,然后在不同的python脚本中使用它。在线查看似乎最好的方法是使用cPickle。但是,当我尝试将此模型保存为pickle文件并在尝试加载cPickled模型时将其保存为EOFerror时,我似乎遇到了内存错误。我之前在我的代码中使用了cPickle来挑选一个字符串列表,当我尝试在我的下一个python脚本中加载它时它工作得很好。我不确定为什么当我尝试使用与我的statsmodel相同的方法时,它不会工作但列表确实如此。以下是我的代码的一些片段:

在Python脚本#1中:

import cPickle
import import statsmodels.formula.api as smf

selected = ['name1',....,'name20']
model = smf.ols(formula, data).fit()

cPickle.dump(selected, open('predictors.p', 'w'))
cPickle.dump(model, open('model.p', 'w')) # Here I get a MemoryError

在Python脚本#2中:

predictors = cPickle.load(open('predictors.p','r')) # This works 
model = cPickle.load(open('model.p','r')) # This results in an EOFerror


Traceback (most recent call last):
File "MOS_predictor_test.py", line 305, in <module>
model = cPickle.load(open('model.p','r'))
EOFError

如何保存此模型并在较短的脚本中使用它?似乎cPickle可能无法存储此模型,因为它没有足够的内存。还有什么我可以在cPickle旁边使用的东西可以让我做我想做的事情吗?

0 个答案:

没有答案