运行 随机森林在 scikit-learn 中的内存错误
MemoryError of running Randomforest in scikit-learn
我正在按照 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
集仅在构建森林后才需要,此时不再需要与火车集相关的任何其他内容。
- 整个训练部分可以包含在一个返回森林的函数中,它将处理之后不再需要的所有引用。
在指定的示例中,词袋包含 5000 个特征;这需要大量内存。因此,一种解决方案是减少特征数量,但这样做可能会影响模型性能。
另一种解决方案是从 32 位 Python 切换到 64 位。
我正在按照 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
集仅在构建森林后才需要,此时不再需要与火车集相关的任何其他内容。 - 整个训练部分可以包含在一个返回森林的函数中,它将处理之后不再需要的所有引用。
在指定的示例中,词袋包含 5000 个特征;这需要大量内存。因此,一种解决方案是减少特征数量,但这样做可能会影响模型性能。 另一种解决方案是从 32 位 Python 切换到 64 位。