AdaBoosClassifier 内存错误

Memory error with AdaBoosClassifier

我定义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。为什么会出现这种情况以及如何解决这个问题?

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

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

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

The core principle of AdaBoost is to fit a sequence of weak learners (i.e., models that are only slightly better than random guessing, such as small decision trees)