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)
我定义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)