利用GBDT模型构造新特征具体方法

实际问题中,可直接用于机器学习模型的特征往往并不多。能否从“混乱”的原始log中挖掘到有用的特征,将会决定机器学习模型效果的好坏。引用下面一句流行的话:

特征决定了所有算法效果的上限,而不同的算法只是离这个上限的距离不同而已。

本文中我将介绍Facebook最近发表的利用GBDT模型构造新特征的方法。

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

论文的思想很简单,就是先用已有特征训练GBDT模型,然后利用GBDT模型学习到的树来构造新特征,最后把这些新特征加入原有特征一起训练模型。构造的新特征向量是取值0/1的,向量的每个元素对应于GBDT模型中树的叶子结点。当一个样本点通过某棵树最终落在这棵树的一个叶子结点上,那么在新特征向量中这个叶子结点对应的元素值为1,而这棵树的其他叶子结点对应的元素值为0。新特征向量的长度等于GBDT模型里所有树包含的叶子结点数之和。

举例说明。下面的图中的两棵树是GBDT学习到的,第一棵树有3个叶子结点,而第二棵树有2个叶子节点。对于一个输入样本点x,如果它在第一棵树最后落在其中的第二个叶子结点,而在第二棵树里最后落在其中的第一个叶子结点。那么通过GBDT获得的新特征向量为[0, 1, 0, 1, 0],其中向量中的前三位对应第一棵树的3个叶子结点,后两位对应第二棵树的2个叶子结点。

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

下面是这种方法在我们世纪佳缘的一个概率预测问题上的实际效果。我们只使用了30棵树。第一个图是只使用原始特征的结果,第二个图是原始特征加GBDT新特征的结果。图中横坐标表示预测概率值,纵坐标表示真实概率值。所以预测的点越靠近y=xy=x这条参考线越好。显然,使用了GBDT构造的新特征后,模型的预测效果好不少。

已经有人利用这种方法赢得了Kaggle一个CTR预估比赛的冠军,这种方法的具体实现代码可见 https://github.com/guestwalk/kaggle-2014-criteo


原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

人脸识别技术大总结1——Face Detection &Alignment

2095
来自专栏机器之心

CVPR2018 | 海康、UCLA、北理联合提出3D DescriptorNet:可按条件生成3D形状,克服模式崩溃

选自arXiv 作者:Jianwen Xie等 机器之心编译 参与:Huiyuan Zhuo、刘晓坤 近日,海康威视、UCLA、北理工联合提出了新的模型 3D ...

33711
来自专栏Fish

Andrew Ng的机器学习课程概述(二)

第七章 过拟合(over-fitting) 这一章主要就是处理过拟合问题。 首先介绍如何选择参数: 选择尽可能少的特征 自动选择模型(这是啥?) 正则化 ...

2035
来自专栏PPV课数据科学社区

一篇文章搞懂人脸识别的十个概念

人脸技术基本概念介绍 1. 人脸检测   “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。   人脸检测算法的输入是一张图片,...

3506
来自专栏人工智能LeadAI

CNN中,1X1卷积核到底有什么作用呢?

Question 从NIN 到Googlenet mrsa net 都是用了这个,为什么呢? 发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得...

4347
来自专栏AI研习社

我是这样学习 GAN 的——开发者自述

Generative Adversarial Network,就是大家耳熟能详的 GAN,由 Ian Goodfellow 首先提出,在这两年更是深度学习中最热...

3136
来自专栏AI科技评论

裴健团队KDD新作:革命性的新方法,准确、一致地解释深度神经网络

AI 科技评论按:你有没有想过,深度神经网络是依据什么来准确识别有猫的图片的?随着深度神经网络在金融、医疗及自动驾驶等领域的广泛应用,深度神经网络无法明确解释...

1233
来自专栏AI科技评论

深度学习元老Yann Lecun详解卷积神经网络(30页干货PPT)

雷锋网注:卷积神经网络(Convolutional Neural Network)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型...

4159
来自专栏机器学习算法工程师

全面直观认识深度神经网络

作者:石文华 编辑:赵一帆 01 深度学习的精准定义 一类通过多层非线性变换对高复杂性数据建模算法的集合。它的两个非常重要的特征是多层性和非线性。俗称多层非线...

3498
来自专栏IT派

推荐|研究人脸识别技术必须知道的十个基本概念

1. 人脸检测 “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。 人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人...

3655

扫码关注云+社区