Ketika disimpan ke disk menggunakan cPickle: /programming/20662023/save-python-random-forest-model-to-file , hutan acak saya adalah 6,57 GB.
with open('rforest.cpickle', 'wb') as f:
cPickle.dump(rforest, f)
Saya ingin menggunakan hutan itu sendiri untuk membuat prediksi melalui API python yang dihosting di Heroku - tentu saja, ukuran file itu tidak dapat diterima.
Mengapa ukuran file begitu besar? Ada 500 pohon di ansambel - yang ingin saya selamatkan adalah pohon yang sudah selesai, karena akan digunakan sebagai prediksi. Apakah node dan tepi sebenarnya yang menyusun masing-masing dari 500 pohon yang membutuhkan hampir 7 GB ruang pada disk?
Saya menggunakan randomforestregressor scikitlearn:
def buildForest(self, X_train, y_train):
rf = RandomForestRegressor(n_estimators=500, verbose=1)
rf.fit_transform(X_train, y_train)
return rf
Juga, jika ada cara yang lebih baik untuk membuat model saya dapat diakses melalui API, itu juga baik untuk diketahui.
Pembaruan: Saya menguranginya menjadi 100 pohon tanpa kehilangan banyak daya prediksi, dan sekarang ukuran yang disimpan adalah 1,3 GB - jauh lebih mudah dikelola, tetapi masih belum terlalu bagus.