【发布时间】:2014-05-31 09:30:04
【问题描述】:
我正在一些相当大的训练数据集上运行 scikit learn,大约 1,600,000,000 行具有大约 500 个特征。平台是Ubuntu server 14.04,硬件有100gb内存和20个CPU核。
测试数据集的行数大约是原来的一半。
我设置了 n_jobs = 10,并且我设置了 forest_size = 3*number_of_features 所以大约 1700 棵树。
如果我将特征数量减少到大约 350 个,它可以正常工作,但永远不会以 500+ 的完整特征集完成训练阶段。该进程仍在执行并使用了大约 20gb 的内存,但使用了 0% 的 CPU。我还成功完成了大约 400,000 行的数据集,但仅用了大约 1 小时就完成了两倍的特征。
我会小心删除所有未使用的数组/对象。
有没有人有我可以尝试的想法?
【问题讨论】:
-
您使用的是哪个版本的 scikit-learn?您是否尝试过项目当前的 master 分支?
-
这是一个更新,重启后我通过了训练,但现在它在预测阶段挂起,有 47 个 rcuo 进程以 root 身份运行。
-
我杀死了所有运行 scikit 的脚本进程,这 47 个 rcou 进程仍然存在,直到我重新启动服务器。
-
你应该试试当前的 scikit-learn 大师。 RandomForestClassifier 现在使用 Python 线程(单个 Python 进程)。它应该对高度并发的工作负载更加健壮。
-
我安装了最新的 master 分支(在我写这篇文章时 2 小时前提交)我收到一条错误消息,结尾为:from ..utils.sparsefuncs import inplace_column_scale ImportError: cannot import name inplace_column_scale跨度>
标签: scikit-learn