XGBoost 对数字预测器更好吗?

数据挖掘 xgboost
2022-02-26 12:15:03

我有一个分类特征,我一次性编码并在我的 XGBoost 模型中使用,但与其他预测器相比,它作为预测器始终表现不佳。

然后我创建了一个新变量,其中包含与分类特征相同的信息......

想象一下,我有兴趣预测房屋的价格,分类特征是它所在的城镇,而数字特征是我根据对城镇的一些先验知识生成的对城镇相对昂贵程度进行排名的特征。

TownA - 100
TownB - 40
TownC - 65
TownD - 15

现在突然之间,直接从分类变量导出的新数值变量表现出色。这是因为 XGBoost 对数值变量的效果更好,并且当我对变量进行一次性编码时,可能会丢失一些预测能力?

1个回答

默认情况下,特征重要性xgboost由给定特征在集合中的所有树中作为分割特征出现的次数给出。

当 one-hot 编码时,每个新创建的虚拟变量只能取值 0 和 1,因此在每个(子)树中只能出现一次。但是,当通过为每个类别赋予不同的值来将值组合成一个数字特征时,该特征可以在每棵树的不同级别上出现更多次,从而提高了重要性得分。