Quando salvato su disco usando cPickle: /programming/20662023/save-python-random-forest-model-to-file , la mia foresta casuale è di 6.57 GB.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Voglio usare la foresta stessa per fare previsioni tramite un'API python ospitata su Heroku - ovviamente, la dimensione del file è inaccettabile.
Perché la dimensione del file è così grande? Ci sono 500 alberi nell'insieme - tutto quello che voglio salvare sono gli alberi completati stessi, poiché saranno usati come previsione. Sono i nodi e i bordi effettivi che compongono ciascuno dei 500 alberi che richiedono quasi 7 GB di spazio su disco?
Ho usato il randomforestregressor di scikitlearn:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
Inoltre, se esiste un modo migliore per rendere accessibile il mio modello tramite API, sarebbe bene saperlo.
Aggiornamento: l'ho ridotto a 100 alberi senza perdere molta potenza predittiva, e quindi ora la dimensione salvata è di 1,3 GB - molto più gestibile, ma ancora non eccezionale.