随机森林分类器分割故障

时间:2013-11-27 01:49:18

标签: python scikit-learn random-forest

一直试图在大约50,000个条目的数据集上运行RF分类器,其中包含20个左右的标签,我认为应该没问题但是在尝试适合时我会遇到以下情况......

Exception MemoryError: MemoryError() in 'sklearn.tree._tree.Tree._resize' ignored
Segmentation fault (core dumped)

数据集已通过TfidfVectorizer,然后通过TruncatedSVD,n = 100,以减少维数。 RandomForestClassifier以n_jobs = 1和n_estimators = 10运行,试图找到它将工作的最小点。该系统运行时带有4GB的RAM,RF过去曾在类似的数据集上运行,估计数量更多.Scikit-learn运行在当前版本0.14.1。

任何提示?

由于

2 个答案:

答案 0 :(得分:1)

Segfaults总是错误。如果mallocRandomForest内失败,那么它应该被捕获,我最好的猜测是这就是你发生的事情。作为评论者已经说过,您应该将此报告给RandomForest错误跟踪器。但由于内存不足,malloc 可能失败,因此降低维度,减少训练数据集大小,获取更多内存,或在具有更多内存的系统上运行。

答案 1 :(得分:0)

尝试使用' psutil'图书馆(链接:https://pypi.python.org/pypi/psutil/0.5.0)。借助该库,您可以使用以下功能监控系统的可用内存量:

psutil.phymem_usage()

这将帮助您检测系统是否没有足够的内存或是否是您的代码问题。