【发布时间】:2013-01-31 01:38:29
【问题描述】:
我正在尝试用一个中等大小的 numpy 浮点数组来适应 Forest
In [3]: data.shape
Out[3]: (401125, 5)
[...]
forest = forest.fit(data[:,1:],data[:,0])
问题出现在拟合开始后 10 秒左右。在冻结我的机器之前,它最多需要 3.6 GB(3.8 GB)的内存,我必须终止该进程。
我一直在研究,当您将n_jobs 设置为大于 1 的值时,这个问题似乎很常见。但我使用的是 n_jobs 的默认值,即 1。
我还尝试将n_estimators 从我的初始值 100 更改为 5,只是为了看看是否发生了不同的事情,但一切都保持不变。
有人能解释一下吗?
谢谢!
【问题讨论】:
-
您可以尝试将您的数据转换为 Fortran 对齐的 float32 数组吗?
-
你的意思是使用numpy.asfortranarray?
-
是的,完全正确。这是随机森林模型内部使用的内存布局。
-
@ogrisel 糟糕,这很尴尬。我实际上是在尝试进行回归,而不是分类。我现在已经更改了随机森林的类,并且没有使用大量内存。 (虽然这需要很长时间)还是谢谢!
-
有趣,我没想过这种可能性。如果目标变量具有浮点数据类型,也许我们应该发出警告。
标签: python numpy scikit-learn