GBDT构建组合特征

最初是由Facebook在2014年提出,并被广泛运用于点击率预估项目上,被证明有效。

动机在于GBDT无法直接处理海量的离散特征,复杂度太高,所以主要思路就是就是先用已有特征训练GBDT模型,然后利用GBDT模型学习到的树来构造新特征,最后把这些新特征加入原有特征一起训练模型。构造的新特征向量是取值0/1的,向量的每个元素对应于GBDT模型中树的叶子结点。当一个样本点通过某棵树最终落在这棵树的一个叶子结点上,那么在新特征向量中这个叶子结点对应的元素值为1,而这棵树的其他叶子结点对应的元素值为0。新特征向量的长度等于GBDT模型里所有树包含的叶子结点数之和。最后的输出一般会接一个Logistic Regression,事实上就是一种stacking的模型融合方式。



GBDT构建组合特征_第1张图片


那么,GBDT中需要多少棵树能达到效果最好呢?具体数字显然是依赖于你的应用以及你拥有的数据量。一般数据量较少时,树太多会导致过拟合。在作者的应用中,大概500棵左右效果就基本不改进了。另外,作者在建GBDT时也会对每棵树的叶子结点数做约束——不多于12个叶子结点。



参考文献:

Xinran He et al. Practical Lessons from Predicting Clicks on Ads at Facebook, 2014. 

你可能感兴趣的:(机器学习和数据挖掘)