Сохраните случайную модель леса python в файл
В R, после запуска модели "случайного леса", я могу использовать save.image("***.RData")
для хранения модели. Впоследствии я могу просто загрузить модель, чтобы делать прогнозы напрямую.
Можете ли вы сделать подобное в python? Я разделяю модель и предсказание на два файла. И в файле модели:
rf= RandomForestRegressor(n_estimators=250, max_features=9,compute_importances=True)
fit= rf.fit(Predx, Predy)
Я попытался вернуть rf
или fit
, но все еще не могу загрузить модель в файл предсказания.
Можете ли вы разделить модель и предсказание, используя пакет случайных лесных ресурсов sklearn?
Ответы
Ответ 1
...
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)
Ответ 2
Я использую укроп, он хранит все данные, и я думаю, что, возможно, информация о модуле? Возможно, нет. Я помню, как пытался использовать 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"))
btw, не уверен, что вы используете iPython, но иногда записывая файл таким образом, вы не должны делать:
with open(wd + "filename.obj","wb") as f:
dill.dump(rf,f)
снова вызовите объекты:
model = dill.load(open(wd + "filename.obj","rb"))
Ответ 3
для хранения модели вы также можете использовать .sav formate. он хранит полную модель и информацию.