使用python scikit-learn,我将“极度随机树”分类器(ExtraTreesClassifier)拟合到100个特征的~900K样本数组(实数值float64) . 然后我试着腌它 .
我用以下方法实例化了classsifier:
cls = ExtraTreesClassifier(n_estimators = 10,random_state = 0,n_jobs = -1)
在拟合之后,我尝试了两种保存方式:
pickle.dump(cls,open(classifier_file,“wb”))
并且,使用joblib:
来自sklearn.externals导入joblib
joblib.dump(cls,classifier_file)
在常规泡菜中,它需要4千兆字节的空间!在joblib版本中,它占用大约1.5千兆字节的空间 .
它本身是否存储了一些适合或预测的原始输入数据?
1 回答
单个"Extremely Randomized Tree"可能会随着输入数据的大小而增长,因为它会创建一个决策树,将数据拆分为具有少量观察值的叶节点(例如,要么达到参数化限制 - 默认情况下这是
min_samples_split=2
或pure
并包含一个类) .具有大量高度预测功能的数据将具有观察次数较多的纯节点,因此占用的空间更少 . 存储的大小也应该与估算器的数量大致成比例 .