【问题标题】:Explosion of memory usage when fitting a RandomForestClassifier拟合 RandomForestClassifier 时内存使用量爆炸式增长
【发布时间】: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


【解决方案1】:

哎呀。我实际上是在尝试进行回归,而不是分类。 结束问题。

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 2018-09-15
    • 2019-08-03
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2018-08-07
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多