访问单个树估计器以预测来自梯度提升分类器估计器的值
Posted
技术标签:
【中文标题】访问单个树估计器以预测来自梯度提升分类器估计器的值【英文标题】:Acccesing individual tree estimators to predict values from gradient boosting classfiier estimators 【发布时间】:2018-11-29 07:43:10 【问题描述】:gbm0 = GradientBoostingClassifier(n_estimators=500, random_state=42)
%time modelfit(gbm0, X_train, y_train)
##model fit is a fucntion i wrote to create a report on gbm classifier
preds = np.stack([t.predict(X_valid) for t in gbm0.estimators_])
报错
----> 1 preds = np.stack([t.predict(X_valid) for t in gbm0.estimators_])
AttributeError: 'numpy.ndarray' object has no attribute 'predict'
如何访问单个树的预测方法来查看预测?
【问题讨论】:
【参考方案1】:数组estimators_
的形状为(n_estimators, 1)
,用于二进制分类。所以你可以通过重塑来修复错误:
preds = np.stack([t.predict(X_valid) for t in gbm0.estimators_.reshape(-1)])
【讨论】:
酷。这也行。preds = np.stack([t[0].predict(X_valid) for t in gbm0.estimators_])
以上是关于访问单个树估计器以预测来自梯度提升分类器估计器的值的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 1 个估计器的 adaboost 比简单的决策树更快?