当使用 cPickle 保存到磁盘时:https ://stackoverflow.com/questions/20662023/save-python-random-forest-model-to-file ,我的随机森林为 6.57 GB。
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
我想使用森林本身通过托管在 Heroku 上的 python API 进行预测——当然,文件大小是不可接受的。
为什么文件大小这么大?集合中有 500 棵树——我只想保存已完成的树本身,因为它们将用作预测。构成 500 棵树中的每一棵树的实际节点和边是否需要近 7 GB 的磁盘空间?
我使用了 scikitlearn 的 randomforestregressor:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
此外,如果有更好的方法让我的模型可以通过 API 访问,那也很高兴知道。
更新:我将它减少到 100 棵树而没有失去太多的预测能力,所以现在节省的大小是 1.3 GB——更易于管理,但仍然不是很好。