将python随机林模型保存到fi

2024-09-26 17:40:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在R中,运行“random forest”模型之后,我可以使用save.image("***.RData")来存储该模型。之后,我可以直接加载模型进行预测。

你能用python做类似的事情吗?我把模型和预测分为两个文件。在模型文件中:

rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
fit= rf.fit(Predx, Predy)

我试图返回rffit,但仍然无法在预测文件中加载模型。

你能用sklearn随机森林包把模型和预测分开吗?


Tags: 文件模型imagesaverandom事情maxfit
4条回答
...
import cPickle

rf = RandomForestRegresor()
rf.fit(X, y)

with open('path/to/file', 'wb') as f:
    cPickle.dump(rf, f)


# in your prediction file                                                                                                                                                                                                           

with open('path/to/file', 'rb') as f:
    rf = cPickle.load(f)


preds = rf.predict(new_X)

我使用dill,它存储所有的数据,我想可能模块信息?也许不是。我记得我试图用pickle来存储这些非常复杂的对象,但这对我来说不起作用。cPickle可能和dill做同样的工作,但我从未尝试过cpickle。看起来它的工作原理完全一样。我使用“obj”扩展,但这绝不是常规的……这对我来说很有意义,因为我正在存储一个对象。

import dill
wd = "/whatever/you/want/your/working/directory/to/be/"
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
rf.fit(Predx, Predy)
dill.dump(rf, open(wd + "filename.obj","wb"))

顺便说一下,不确定您是否使用了iPython,但有时用这种方式编写文件却不行,因此您必须执行以下操作:

with open(wd + "filename.obj","wb") as f:
    dill.dump(rf,f)

再次调用对象:

model = dill.load(open(wd + "filename.obj","rb"))

对于存储模型,也可以使用.sav formate。它存储完整的模型和信息。

我使用dill,它存储所有的数据,我想可能模块信息?也许不是。我记得我试图用pickle来存储这些非常复杂的对象,但这对我来说不起作用。cPickle可能和dill做同样的工作,但我从未尝试过cpickle。看起来它的工作原理完全一样。我使用“obj”扩展,但这绝不是传统的……这对我来说很有意义,因为我正在存储一个对象。

import dill
wd = "/whatever/you/want/your/working/directory/to/be/"
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
rf.fit(Predx, Predy)
dill.dump(rf, open(wd + "filename.obj","wb"))

顺便说一下,不确定您是否使用了iPython,但有时用这种方式编写文件却不行,因此您必须执行以下操作:

with open(wd + "filename.obj","wb") as f:
    dill.dump(rf,f)

再次调用对象:

model = dill.load(open(wd + "filename.obj","rb"))

相关问题 更多 >

    热门问题