我正在按照初学者 – 词袋模型中给出的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 fitX = 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
表示你的可用内存已经耗尽。
如果你正在按照这里的示例代码进行操作,那么有几种方法可以帮助你:
- 当不再需要某些变量时,使用
del
删除它们
(例如,第62行之后就不再需要clean_train_reviews
) - 第42行之后,只需要
train["sentiment"]
,可以丢弃train
的其余部分以释放内存 - 不要在开始时同时读取训练集和测试集。
test
集只在构建森林之后需要,此时与训练集相关的所有内容都不再需要。 - 可以将整个训练部分包装在一个返回森林的函数中,这样可以处理所有在之后不再需要的引用。