2

使用 python + scikit-learn,我将“极端随机树”分类器 (ExtraTreesClassifier) 拟合到 100 个特征的约 900K 样本数组(实值 float64)。然后我试着腌制它。

我用以下方法实例化了分类器:

cls = ExtraTreesClassifier(n_estimators=10, random_state=0, n_jobs=-1)

拟合后,我尝试了两种保存方式:

pickle.dump(cls, open(classifier_file, "wb"))

并且,使用 joblib:

from sklearn.externals import joblib
joblib.dump(cls, classifier_file)

在普通的泡菜中,它占用了 4+ GB 的空间!在 joblib 版本中,它占用大约 1.5 GB 的空间。

它是否固有地存储了一些适合或预测的原始输入数据?

4

1 回答 1

2

单个“极端随机树”可能会随着输入数据的大小而增长,因为它会创建一个决策树,该决策树将数据拆分为具有少量观察的叶节点(例如,要么达到参数化限制——默认情况下这个是min_samples_split=2pure并且包含一个类)。

具有许多高度预测特征的数据将具有具有大量观察值的纯节点,因此占用的空间更少。存储的大小也应该与估计器的数量大致成比例。

于 2015-11-28T16:03:01.380 回答