scikit-learn GradientBoostingRegressor 的 'init' 参数是否定义了基本估计量?

does the 'init' parameter of scikit-learn GradientBoostingRegressor define the base estimator?

我正在尝试创建一个确定的回归量的集合,考虑到这一点,我已经搜索了一些方法来使用 sklearn 已经存在的集合方法,并尝试更改集合的基础估计量。装袋文档很清楚,因为它说您可以通过将回归量作为参数传递给“base_estimator”来更改基本估计量,但是使用 GradientBoosting,您可以在“init”参数中传递回归量。

我的问题是:在 GradientBoosting 的 init 参数中传递我的回归器,会使其使用我指定为基础估计器而不是树的回归器吗?文档说 init 值必须是“一个用于计算初始预测的估计器对象”,所以我不知道我将在 init 中传递的估计器是否是实际上用作要增强的弱学习器的那个通过bosting方法,或者它只是在开始时使用,之后所有的工作都由决策树完成。

没有.

GradientBoostingRegressor 只能使用回归树作为基础估计量;来自 docs(强调我的):

In each stage a regression tree is fit

正如相关 Github thread 中所指出的(Ben Reiniger 在下面的评论中指出了这一点):

the implementation is entirely tied to the assumption that the base estimators are trees

为了提升任意基回归器(类似于套袋),你需要AdaBoostRegressor, which, similarly again with bagging, takes also a base_estimator argument. But before doing so, you may want to have a look at own answer in ;引用:

Adaboost (and similar ensemble methods) were conceived using decision trees as base classifiers (more specifically, decision stumps, i.e. DTs with a depth of only 1); there is good reason why still today, if you don't specify explicitly the base_classifier argument, it assumes a value of DecisionTreeClassifier(max_depth=1). DTs are suitable for such ensembling because they are essentially unstable classifiers, which is not the case with SVMs, hence the latter are not expected to offer much when used as base classifiers.