如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~
文章目录
2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善推荐系统各个知识体系的文章,帮助大家更高效学习。
在CRT预估中,工业界一般是会采用逻辑回归进行处理,对用户特征画像进行建模,然后计算点击概率,评估用户是否会有点击的行为。
但是逻辑回归这个算法天生就会有个缺陷,它不能够区分非线性的数据,原因是逻辑回归是在普通的线性回归的基础之上添加了Sigmoid函数,处理的只能是线性数据,那么我们就需要获得线性可分的数据,这是如果采用人工进行组合特征,成本会非常的贵,而且需要有经验的专业人士,才能够获得提升模型效果的组合特征。
对于这种状况,我们就想能不能自动化的通过算法去产生有效的特征组合,在2014年Facebook发表的一篇论文《Practical Lessons from Predicting Clicks on Ads at Facebook》,这篇论文提出了使用GBDT去产生高效的特征组合。
那么GBDT是如何产生新的特征呢?
首先GBDT是基于拟合观测值与上一个树模型的残差进行建模,这里基学习器使用的是CART决策树,GBDT是Boosting框架的模型,将多个基学习器进行串联加权,最终的输出结果是多棵树的加权结果。
由于基学习器使用的是决策树,而且限制了树的深度,所以它是低偏差高方差的,我们的每棵树首先会遍历所有的特征,然后遍历每个特征的可切分点,然后通过损失函数找到最优的特征的最优切分点,然后建树,由于树的深度很浅,所以单棵树并不会使用到所有的特征,每个叶子节点就是这个树最终的预测结果,那么从根节点到叶子节点的路径就是我们这个树用来判别这个样本的根据,说白就是这个树是通过这条路径的特征组合来实现这个样本分类的,再换句话说,就是我们产生了一个特征组合,就是这条路径的特征组合,利用这个特征组合我们就可以区分这个根节点的样本,那么我们就可以获取所有树的根节点的特征组合。
举个例子,我们定义GBDT树的个数为2,那么我们就会有两棵树,如果第一个树的叶子节点个数为3,第二颗树的叶子节点个数为2,那么我们就会产生一个新的5维特征向量,如果一个样本落到了对应的叶子节点,则这个节点对应的向量值为1,比如一个样本落在了第一颗树的第2个叶子节点,落到了第二棵树的第1个节点,那么产生的特征组合向量为 【0,1,0,1,0】,这是我们就可以将这个5维向量与原来的特征进行拼接融合,作为新的特征矩阵交给逻辑回归模型中进行建模。
|