Cuando se guarda en el disco usando cPickle: /programming/20662023/save-python-random-forest-model-to-file , mi bosque aleatorio es de 6.57 GB.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Quiero usar el bosque mismo para hacer predicciones a través de una API de Python alojada en Heroku; por supuesto, ese tamaño de archivo es inaceptable.
¿Por qué el tamaño del archivo es tan grande? Hay 500 árboles en el conjunto; todo lo que quiero guardar son los árboles completos, ya que se usarán como predicción. ¿Son los nodos y bordes reales que componen cada uno de los 500 árboles que requieren casi 7 GB de espacio en el disco?
Utilicé el progreso aleatorio 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
Además, si hay una mejor manera de hacer que mi modelo sea accesible a través de API, también sería bueno saberlo.
Actualización: lo reduje a 100 árboles sin perder mucho poder predictivo, por lo que ahora el tamaño guardado es de 1.3 GB, mucho más manejable, pero aún no excelente.