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本のツリーがあります。保存したいのは、予測として使用されるため、完成したツリー自体だけです。ディスク上に約7 GBのスペースを必要とする500のツリーのそれぞれを構成するのは、実際のノードとエッジですか?
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になりました。