Beim Speichern auf der Festplatte mit cPickle: /programming/20662023/save-python-random-forest-model-to-file beträgt meine zufällige Gesamtstruktur 6,57 GB.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Ich möchte die Gesamtstruktur selbst verwenden, um Vorhersagen über eine auf Heroku gehostete Python-API zu treffen - natürlich ist diese Dateigröße nicht akzeptabel.
Warum ist die Datei so groß? Es gibt 500 Bäume im Ensemble - alles, was ich retten möchte, sind die fertigen Bäume selbst, da sie als Vorhersage verwendet werden. Sind es die tatsächlichen Knoten und Kanten, aus denen jeder der 500 Bäume besteht, die fast 7 GB Speicherplatz auf der Festplatte benötigen?
Ich habe den Randomforestregressor von scikitlearn verwendet:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
Wenn es eine bessere Möglichkeit gibt, mein Modell über die API zugänglich zu machen, wäre dies ebenfalls gut zu wissen.
Update: Ich habe es auf 100 Bäume reduziert, ohne viel Vorhersagekraft zu verlieren. Die gespeicherte Größe beträgt jetzt 1,3 GB - viel besser handhabbar, aber immer noch nicht großartig.