我一直试图在一个有大约50,000个条目和大约20个标签的数据集上运行RF分类器,我认为这应该很好,但当我尝试拟合时,我总是遇到以下问题……
Exception MemoryError: MemoryError() in 'sklearn.tree._tree.Tree._resize' ignored
Segmentation fault (core dumped)数据集已通过TfidfVectorizer,然后使用n=100进行TruncatedSVD以进行降维。RandomForestClassifier正在与n_jobs=1和n_estimators=10一起运行,试图找到它可以工作的最小点。该系统在4 4GB的RAM上运行,RF过去曾在类似的数据集上工作,具有更多的估计器等。Scikit-learn运行在当前版本0.14.1。
有什么建议吗?
谢谢
发布于 2014-01-24 05:10:00
段错误总是bug。如果RandomForest内部的malloc失败了,那么它应该被捕获,我最好的猜测是这就是发生在您身上的事情。正如一位评论者已经说过的,你应该向RandomForest bug追踪器报告这一点。但malloc可能因为内存不足而失败,因此请降低维数,减小训练数据集大小,获得更多内存,或者在内存更大的系统上运行。
发布于 2016-09-07 21:56:05
尝试使用'psutil‘库(链接:https://pypi.python.org/pypi/psutil/0.5.0)。多亏了这个库,您可以使用以下函数监控系统的可用内存量:
psutil.phymem_usage()这将帮助您检测您的系统是否没有足够的内存,或者这是否是代码的问题。
https://stackoverflow.com/questions/20231491
复制相似问题