1

我定义AdaBoostClassifier如下:

adaboost = AdaBoostClassifier(base_estimator=ensemble.RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
                                        max_depth=20, max_features=300, max_leaf_nodes=None,
                                        min_samples_leaf=1, min_samples_split=6,
                                        min_weight_fraction_leaf=0.0, n_estimators=580, n_jobs=1),
                                  algorithm='SAMME.R',
                                  n_estimators=20,
                                  learning_rate=1.0)

ada = adaboost.fit(X, y)

最后一行代码(我适合模型的地方)触发了 MemoryError。为什么会发生以及如何解决这个问题?

4

1 回答 1

0

您的系统正在尝试分配比您可用的更多的内存。

当您将 AdaBoost 与一个非常复杂的基础学习器一起使用时,这在某种程度上是意料之中的:一个由 580 棵树组成的随机森林。使用不太复杂的基础模型,如低深度决策树。

来自sklearn AdaBoost 文档(粗体是我的):

AdaBoost 的核心原理是拟合一系列弱学习器(即仅比随机猜测稍微好一点的模型,例如小型决策树

于 2016-02-27T17:45:16.330 回答