Quando salva em disco usando o cPickle: /programming/20662023/save-python-random-forest-model-to-file , minha floresta aleatória tem 6,57 GB.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Quero usar a própria floresta para fazer previsões por meio de uma API python hospedada no Heroku - é claro, esse tamanho de arquivo é inaceitável.
Por que o tamanho do arquivo é tão grande? Existem 500 árvores no conjunto - tudo o que quero salvar são as próprias árvores concluídas, pois serão usadas como previsão. São os nós e as bordas reais que compõem cada uma das 500 árvores que requerem quase 7 GB de espaço em disco?
Eu usei o randomforestregressor do scikitlearn:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
Além disso, se houver uma maneira melhor de tornar meu modelo acessível via API, também seria bom saber.
Atualização: reduzi-o para 100 árvores sem perder muito poder preditivo, e agora o tamanho salvo é de 1,3 GB - muito mais gerenciável, mas ainda não ótimo.