python - 如何从 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
我想获得每个基本模型的分数和最终集成模型的分数。所以,我使用(with 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_:
更多信息
此外,如果您想根据您的代码运行我所理解的更多模型,您需要更改return
代码(不在loop
.
推荐阅读
- ios - RxSwift Observable 不发出值
- callback - 在散景回调中使用自定义 js 创建 .xlsx
- javascript - 打字稿使用属性类进行多次调用
- javascript - Jquery触发方法不适用于Chrome
- json - Fluentd 解析部分 json 日志
- dart - 在 Dart 中,List.unmodifiable() 和 UnmodifiableListView 有什么不同?
- r - 如何生成`c('q01','q02','q03','q04',...'q99')`?
- python - Python 中的 AWS Lambda 部署包
- javascript - 当 JS 尝试从内部服务器获取数据时连接被拒绝
- spring-boot - Spring Boot 进行 LDAP 身份验证的方式