Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在scikit学习中运行Randomforest的MemoryError_Python_Python 2.7_Machine Learning_Scikit Learn - Fatal编程技术网

Python 在scikit学习中运行Randomforest的MemoryError

Python 在scikit学习中运行Randomforest的MemoryError,python,python-2.7,machine-learning,scikit-learn,Python,Python 2.7,Machine Learning,Scikit Learn,下面是中给出的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.

下面是中给出的
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
forest=forest.fit(训练数据特征,训练[“情绪”])
回溯(最近一次呼叫最后一次):
文件“C:/Users/PycharmProjects/Project3/demo4.py”,第60行,在
forest=forest.fit(训练数据特征,训练[“情绪”])
文件“C:\Users\AppData\Roaming\Python\Python27\site-
packages\sklearn\employee\forest.py”,第195行,适合
X=检查数组(X,dtype=dtype,accept\u sparse=“csc”)
文件“C:\Users\AppData\Roaming\Python\Python27\site-
packages\sklearn\utils\validation.py”,第341行,在check\u数组中
array=np.array(array,dtype=dtype,order=order,copy=copy)
记忆者

内存错误
,顾名思义,意味着您的可用内存即将耗尽

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

  • 当不再需要变量时,使用
    del
    对变量进行delte
    (例如,
    clean\u train\u reviews
    在第62行之后不需要)
  • 在第42行之后,只需要
    列车[“情绪”]
    ,其余的
    列车可以丢弃以释放内存
  • 不要在开始时同时阅读训练集和测试集。
    测试
    集仅在构建林后才需要,此时不再需要与列车集相关的任何其他内容
  • 整个训练部分可以封装在一个返回森林的函数中,该函数将处理此后不再需要的所有引用

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

根据您的建议,我创建了doTrain()函数,允许Python清理变量。在我运行本教程时,它单独解决了
内存错误。操作系统:Ubuntu 14.04,RAM 8G