Lorsqu'il est enregistré sur le disque à l'aide de cPickle: /programming/20662023/save-python-random-forest-model-to-file , ma forêt aléatoire est de 6,57 Go.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Je veux utiliser la forêt elle-même pour faire des prédictions via une API python hébergée sur Heroku - bien sûr, cette taille de fichier est inacceptable.
Pourquoi la taille du fichier est-elle si grande? Il y a 500 arbres dans l'ensemble - tout ce que je veux sauver, ce sont les arbres achevés eux-mêmes, car ils seront utilisés comme prédiction. Est-ce que ce sont les nœuds et les bords réels qui composent chacune des 500 arbres qui nécessitent près de 7 Go d'espace sur le disque?
J'ai utilisé randomforestregressor de scikitlearn:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
De plus, s'il existe un meilleur moyen de rendre mon modèle accessible via l'API, ce serait également bon à savoir.
Mise à jour: je l'ai réduit à 100 arbres sans perdre beaucoup de puissance prédictive, et maintenant la taille enregistrée est de 1,3 Go - beaucoup plus gérable, mais toujours pas génial.