Max*_*axB 6 classification machine-learning decision-tree random-forest scikit-learn
我正在使用scikit的Random Forest实现:
sklearn.ensemble.RandomForestClassifier(n_estimators=100,
max_features="auto",
max_depth=10)
Run Code Online (Sandbox Code Playgroud)
调用之后rf.fit(...),进程的内存使用量增加了80MB,或者每棵树增加了0.8MB(我还尝试了许多其他类似结果的设置.我使用top和psutil监视内存使用情况)
深度为10的二叉树最多应该有一个2^11-1 = 2047元素,这些元素都可以存储在一个密集的数组中,这样程序员就可以轻松地找到任何给定元素的父元素和子元素.
每个元素都需要分割和截止中使用的特征的索引,或6-16个字节,具体取决于程序员的经济程度.在我的情况下,这转化为每棵树0.01-0.03MB.
为什么scikit的实现使用20-60x的内存来存储随机森林的树?
| 归档时间: |
|
| 查看次数: |
1784 次 |
| 最近记录: |