我们为一些回归任务训练了额外树模型。我们的模型由3棵额外的树组成,每棵树有200棵深度为30的树。在3棵额外的树上,我们使用岭回归。 我们训练我们的模型几个小时,然后挑选训练好的模型(整个类对象),供以后使用。但是,保存的训练模型的大小太大,大约140 GB! 有没有办法减少保存模型的大小?是否有任何可能有用的配置,或任何替代泡菜?
答案 0 :(得分:7)
您可以尝试将joblib与压缩参数一起使用。
from sklearn.externals import joblib
joblib.dump(your_algo, 'pickle_file_name.pkl',compress=3)
compress - 从0到9.值越高意味着压缩越多,读写时间也越慢。使用值3通常是一个很好的折衷方案。
您可以使用python标准压缩模块zlib,gzip,bz2,lzma和xz。要使用它,您只需指定具有特定扩展名的格式
示例
joblib.dump(obj, 'your_filename.pkl.z') # zlib
更多信息,请参阅[link] :( http://gael-varoquaux.info/programming/new_low-overhead_persistence_in_joblib_for_big_data.html)
答案 1 :(得分:3)
在最好的情况下(二叉树),您将拥有3 * 200 * (2^30 - 1) = 644245094400
个节点或434Gb
,假设每个节点只需要1个字节来存储。我认为140GB的比较相当不错。
编辑:错误的数学。