在scikit-learn中运行Randomforest的内存错误



我正在遵循初学者 - 单词袋中给出的Python示例。但是,以下代码段给出错误消息,如 MemoryError 。可能导致此错误的原因

forest = forest.fit(train_data_features, train["sentiment"])
Traceback (most recent call last):
File "C:/Users/PycharmProjects/Project3/demo4.py", line 60, in <module>
   forest = forest.fit(train_data_features, train["sentiment"])
File "C:UsersAppDataRoamingPythonPython27site-        
   packagessklearnensembleforest.py", line 195, in fit
X = check_array(X, dtype=DTYPE, accept_sparse="csc")
File "C:UsersAppDataRoamingPythonPython27site-
   packagessklearnutilsvalidation.py", line 341, in check_array
   array = np.array(array, dtype=dtype, order=order, copy=copy)
MemoryError

顾名思义,MemoryError意味着您的可用内存不足。

如果您遵循此处的示例代码,那么有几件事可以帮助您:

  • 当您不再需要 del
    使用 Delte 变量(例如,第 62 行之后不需要clean_train_reviews
  • 在第 42 行之后,只需要 train["sentiment"],其余train可以丢弃以释放内存
  • 不要在开始时同时阅读训练集和测试集。test集只有在建造森林后才需要,此时不再需要与火车组相关的其他内容。
  • 整个训练部分可以包装在一个返回森林的函数中,该函数将处理此后不再需要的所有引用。

在指定的例子中,单词袋包含 5000 个特征;这需要大量内存。因此,一种解决方案是减少特征的数量,但这样做可能会影响模型性能。另一种解决方案是从 32 位 Python 切换到 64 位。

相关内容

  • 没有找到相关文章

最新更新