我正在关注 For Beginners - Bag of Words 中给出的 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:\Users\AppData\Roaming\Python\Python27\site-
   packages\sklearn\ensemble\forest.py", line 195, in fit
X = check_array(X, dtype=DTYPE, accept_sparse="csc")
File "C:\Users\AppData\Roaming\Python\Python27\site-
   packages\sklearn\utils\validation.py", line 341, in check_array
   array = np.array(array, dtype=dtype, order=order, copy=copy)
MemoryError

最佳答案

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

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

  • 在不再需要变量时使用 del 删除变量
    (例如,第 62 行之后不需要 clean_train_reviews)
  • 在第 42 行之后,只需要 train["sentiment"],其余的 train 可以丢弃以释放内存
  • 在开始时不会同时阅读训练集和测试集。 test 集仅在构建森林后才需要,此时不再需要与训练集相关的任何其他内容。
  • 整个训练部分可以包装在一个返回森林的函数中,该函数将处理之后不再需要的所有引用。
  • 关于python - 在 scikit-learn 中运行 Randomforest 的 MemoryError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29690210/

    10-12 19:37