Python 随机森林分类器预测中的记忆误差

Python 随机森林分类器预测中的记忆误差,python,classification,Python,Classification,我在我的数据集上安装了一个随机森林分类器,它包含7个特征和大约100万行或记录 下面是我的代码 randForestClassifier=RandomForestClassifier(n_estimators=10,max_depth=3) randForestClassifier.fit(X_train,y) pred=randForestClassifier.predict(featues_test) 当我使用分类器的预测方法时,出现了内存错误。如何修复它 以下是我的完整日志 randFo

我在我的数据集上安装了一个随机森林分类器,它包含7个特征和大约100万行或记录

下面是我的代码

randForestClassifier=RandomForestClassifier(n_estimators=10,max_depth=3)
randForestClassifier.fit(X_train,y)
pred=randForestClassifier.predict(featues_test)
当我使用分类器的预测方法时,出现了内存错误。如何修复它

以下是我的完整日志

randForestClassifier.predict(featues_test)
Traceback (most recent call last):

  File "<ipython-input-15-0b7612d6e958>", line 1, in <module>
    randForestClassifier.predict(featues_test)

  File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 462, in predict
    proba = self.predict_proba(X)

  File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 513, in predict_proba
    for e in self.estimators_)

  File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 659, in __call__
    self.dispatch(function, args, kwargs)

  File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 406, in dispatch
    job = ImmediateApply(func, args, kwargs)

  File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 140, in __init__
    self.results = func(*args, **kwargs)

  File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 106, in _parallel_helper
    return getattr(obj, methodname)(*args, **kwargs)

  File "C:\Python27\lib\site-packages\sklearn\tree\tree.py", line 592, in predict_proba
    proba = self.tree_.predict(X)

  File "sklearn/tree/_tree.pyx", line 3207, in sklearn.tree._tree.Tree.predict (sklearn\tree\_tree.c:24468)

  File "sklearn/tree/_tree.pyx", line 3209, in sklearn.tree._tree.Tree.predict (sklearn\tree\_tree.c:24340)

MemoryError
randForestClassifier.predict(特征检验)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
randForestClassifier.predict(featues_检验)
文件“C:\Python27\lib\site packages\sklearn\employ\forest.py”,第462行,在predict中
概率=自我预测概率(X)
文件“C:\Python27\lib\site packages\sklearn\employ\forest.py”,第513行,在predict\u proba中
对于自估计中的e(u)
文件“C:\Python27\lib\site packages\sklearn\externals\joblib\parallel.py”,第659行,在调用中__
自我分派(功能、参数、kwargs)
文件“C:\Python27\lib\site packages\sklearn\externals\joblib\parallel.py”,第406行,在分派中
作业=立即应用(func、args、kwargs)
文件“C:\Python27\lib\site packages\sklearn\externals\joblib\parallel.py”,第140行,在\uuu init中__
self.results=func(*args,**kwargs)
文件“C:\Python27\lib\site packages\sklearn\employee\forest.py”,第106行,在\u parallel\u helper中
返回getattr(对象,方法名)(*args,**kwargs)
文件“C:\Python27\lib\site packages\sklearn\tree\tree.py”,第592行,在predict\u proba中
概率=自树预测(X)
文件“sklearn/tree/_tree.pyx”,第3207行,在sklearn.tree._tree.tree.predict(sklearn\tree\_tree.c:24468)中
文件“sklearn/tree/_tree.pyx”,第3209行,在sklearn.tree._tree.tree.predict(sklearn\tree\_tree.c:24340)中
记忆者

是的,您将在
randForestClassifier.predict(Features\u test)
获得
内存错误,如堆栈跟踪所示:

File "<ipython-input-15-0b7612d6e958>", line 1, in <module>
    randForestClassifier.predict(featues_test)
文件“”,第1行,在
randForestClassifier.predict(featues_检验)

堆栈跟踪的其余行显示问题来自C代码中的
sklearn
:sklearn\tree\\u tree。C:24340

是的,您在
randForestClassifier.predict(features\u test)
处获得
MemoryError
,如堆栈跟踪所示:

File "<ipython-input-15-0b7612d6e958>", line 1, in <module>
    randForestClassifier.predict(featues_test)
文件“”,第1行,在
randForestClassifier.predict(featues_检验)

堆栈跟踪的其余行显示问题来自C代码中的
sklearn
:sklearn\tree\\u tree。C:24340

您是否尝试过推送少于100万行?根据内存大小和一行的大小,您可以轻松达到较高的内存大小。如果内存中的一行是1000字节,那么您可以在RAM中存储10GB的数据。我分割了10000行,它工作得很好……但是现在这些完整的数据,那100万行呢?增加内存大小,或者使用另一个工具处理大量数据。也许你会发现一些东西。但我的内存已经很大了,它是16GB,当我运行这个时,它仍然显示10GB可用?32位还是64位系统?您需要小心安装的工具,例如anaconda,它应该在64位版本中使用。您尝试过推送少于100万行吗?根据内存大小和一行的大小,您可以轻松达到较高的内存大小。如果内存中的一行是1000字节,那么您可以在RAM中存储10GB的数据。我分割了10000行,它工作得很好……但是现在这些完整的数据,那100万行呢?增加内存大小,或者使用另一个工具处理大量数据。也许你会发现一些东西。但我的内存已经很大了,它是16GB,当我运行这个时,它仍然显示10GB可用?32位还是64位系统?您需要小心安装的工具,例如anaconda,它应该在64位版本中使用。