我正在运行一个 XGBRegressor,它应该预测与不同动作相关的特定奖励,这些动作是单热编码的。出于测试目的,我使用了一个小的 depth=2 并且只有 10 棵树:
XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0, max_depth=2, min_child_weight=1, missing=None, n_estimators=10, n_jobs= 1、nthread=None、objective='reg:linear'、random_state=0、reg_alpha=0、reg_lambda=1、scale_pos_weight=1、seed=None、silent=True、subsample=1)
R-SQR 没问题。然而,在可视化单个树之后,似乎几乎所有树都使用完全相同的特征(并且条件和阈值相同),但结果叶值略有不同。
那有什么意义呢?在这种情况下,树的线性添加就足够了,我们只有一个。不需要完全相同的树具有不同的叶子值,对吧?第一棵树的值也不是最大的,而其余的树具有无关紧要的值 - 它们都具有相似的外观值,右下角的值最大(见图)。
所以我的问题是:
- 为什么它会做多棵树,它们具有完全相同的特征和相等条件,但值略有不同
- 有没有办法说:“如果它们没有增加任何更重要的价值,就停止添加树木”?
