如何从装袋中获得带有集成的基本模型分数

How to get base model score with ensemble from bagging

我创建了一个 Bagging Ensemble Model。下面给出模型

def get_models():
    models = dict()
    n_trees = [10, 50, 100, 500, 500, 1000, 5000]
    for n in n_trees:
        models[str(n)] = BaggingRegressor(base_estimator=DecisionTreeRegressor(), n_estimators=n)
        return models

我想获得每个基础模型的分数和最终集成模型的分数。所以,我正在使用(base_estimator_)下面的代码来访问基本模型

因此,在拟合主要模型后,我使用此代码获取基本模型的分数

        for learner in regressor.base_estimator_:
            base_dfs.append(
                evaluate_base_learner(
                    learner, X_train[train_index], X_test, y_train[train_index], y_test, k, method, learner_name = type(model).__name__,
                )
            )

但是我收到一个错误 TypeError: 'DecisionTreeRegressor' object is not iterable。你能告诉我为什么会出现这个错误吗?我该如何解决这个问题?

如果您想访问 base 模型,您应该使用

for learner in regressor.estimators_:

更多info

此外,如果你想根据你的代码 运行 更多模型,你需要更改 return 代码(不在 loop 内)