Подтвердить что ты не робот

Сохраните случайную модель леса 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?

4b9b3361

Ответ 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. он хранит полную модель и информацию.