gbdt算法

GBDT

£可爱£侵袭症+ 提交于 2019-11-30 10:39:34
转自: https://blog.csdn.net/zpalyq110/article/details/79527653 【尊重原创,转载请注明出处】 http://blog.csdn.net/zpalyq110/article/details/79527653 写在前面: 去年学习GBDT之初,为了加强对算法的理解,整理了一篇笔记形式的文章,发出去之后发现阅读量越来越多,渐渐也有了评论,评论中大多指出来了笔者理解或者编辑的错误,故重新编辑一版文章,内容更加翔实,并且在GitHub上实现了和本文一致的GBDT简易版(包括回归、二分类、多分类以及可视化),供大家交流探讨。感谢各位的点赞和评论,希望继续指出错误~    Github: https://github.com/Freemanzxp/GBDT_Simple_Tutorial 简介:   GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么? 1. Decision Tree:CART回归树   首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类

携程一面凉经

对着背影说爱祢 提交于 2019-11-29 22:15:37
1 介绍一下项目:项目背景,使用的方法 1.1 特征组合如何组合的 1.2 如何选择的特征,GBDT如何选择特征?(没懂什么意思,gbdt训练的时候应该是用的所有的特征,为什么还会有特征选择) 1.3 介绍一下blending方法。 1.4 介绍一下所有的模型各自使用的特征? 2 介绍一下特征提取的方法 3 如何对大量的特征进行特征选择?(只答上来一个方面) Filter(过滤法):按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。 Wrapper(包装法):根据目标函数(通常是预测效果),每次选择若干特征,或者排除若干特征。 Embedded(嵌入法):先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。 4 由于本科是学数学的,有学统计相关的知识,如果特征之间存在多重共线性,会对lr造成什么影响,如何消除这种影响(从理论分析),没答上来 5 知道项目使用python写的,就好像没有什么兴趣了 6 目前企业上用的较多的还是sql,但是简历上没写,也就没问,就说了一下。 7 介绍一下svm的基本原理,为什么转化成对偶问题? 一方面是为了降维,另一方面也是为了引入核函数。 总体:太紧张了,很多东西都忘了,导致面试效果不佳 来源: https://www

计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践

南楼画角 提交于 2019-11-29 06:44:17
计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004 更多 分类专栏: 机器学习 机器学习荐货情报局 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u010352603/article/details/80681100 计算广告CTR预估系列(七)–Facebook经典模型LR+GBDT理论与实践 计算广告CTR预估系列(七)–Facebook经典模型LR+GBDT理论与实践 一、介绍 二、评估函数 2.1 Normalized Cross-Entropy(NE) 2.2 Calibration 三、模型架构 3.1 决策树Feature Transforms 3.2 Data freshness 3.3 LR线性分类器 四. 线上模型架构 4.1 label标注 4.2 模型架构 4.3 挑战 五、处理大量训练数据 5.1 Uniform subsampling 5.2 Negative down sampling 5.3 Model Re-Calibration 六、各种实验结果 6.1 Number of boosting trees 6.2 Boosting

《集成学习》

北城以北 提交于 2019-11-28 14:41:53
介绍 Stacking 、 Bagging 和 Boosting 三种方式。 一、 Stacking 思想:由原始的训练集训练出若干个单模型,将单模型的输出结果作为样本特征进行整合,并把原始样本标记作为新数据样本标记,生成新的训练集。再根据训练集训练一个新模型,并对样本进行预测。 注意:模型训练时,如果直接使用一级模型对初始的训练样本进行预测来产生二级训练集,会产生较大的过拟合风险。因而,常采用 " 交叉验证法 " 或 " 留一法 " 来由一级模型未使用的样本产生二级模型的训练集。将样本划分为 K 份,选择 K-1 份作为 " 训练集 " ,剩余的一份作为 " 测试集 ", 因而总共有 K 种组合方式。每次使用一种方式来训练 T 个模型(模型可以是 " 异质的 " ,也可以是 " 同质的 " ),利用测试集产生一份训练数据作为样本特征,对应的原始测试集数据的样本标记被作为新数据样本标记来使用。最后,将由一级模型产生的 K 次结果组合到一起,作为二级模型的输入进行训练模型。 二、 Bagging 思想:对训练集进行有放回的抽样得到子训练集,比较著名的是 0.632 自助法。每个基学习器基于不同的子训练集进行训练,然后综合所有基学习器的预测值得到最终的预测结果。常采用 " 投票法 " ,即将票数最多的类别作为预测类别。 三、 Boosting 思想:模型的训练是按照顺序的

传统推荐算法(五)LR+GBDT(1)剑指GBDT

大城市里の小女人 提交于 2019-11-28 05:55:27
文章目录 写在前面 1. GBM 1.1 从参数空间到函数空间: 1.2 从非参估计到参数估计 1.3 泰勒展开近似 2. GBM的基学习器 2.1 基学习器选择 2.2 CART回归树 3. GBDT之回归 4. GBDT之分类 4.1 二类逻辑回归和分类 4.2 多类逻辑回归和分类 5. 反思总结 5.1 样本权重调整 5.2 GBDT优缺点 6. GBDT资料推荐 参考 公众号 写在前面 学习GBDT的时候,被网上的几篇文章搞晕了,就去看了下GBDT的论文,整理了一些思路,结合参考中的一些内容,整理了这篇文章。本文将循序渐进,从GB,DT讲到GBDT,细致分析下GBDT的原理。本人才疏学浅,有些地方可能理解得不对,欢迎指出错误。学习过程中,薛大佬的这篇文章给了我很多启发:http://xtf615.com/paper/GBM.html。他本人也很热心地帮我解答疑问,在此特别感谢。 机器学习中的 Boosting 算法族有两大类,一类是 weight_boosting,其中以 adaboost 为主要代表,另一类是 gradient_boosting,其中以 gbdt 为主要代表[1]。GBDT是机器学习竞赛中常用的一种算法,据统计,Kaggle比赛中50%以上的冠军方案都是基于GBDT算法[2]。有人称之为机器学习TOP3算法。 1999年,Jerome Harold

xgboost和GBDT对比;xgboost和lightGbm

为君一笑 提交于 2019-11-28 03:55:55
1. 传统GBDT以CART作为基分类器,特指梯度提升决策树算法,而XGBoost还支持线性分类器(gblinear),这个时候XGBoost就相当于带L1正则和L2正则项的 logistics回归(分类问题)或者线性回归(回归问题) 2. 传统的GBDT只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。 3. xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统的GBDT的一个特性 来源: https://www.cnblogs.com/ivyharding/p/11390735.html

GBDT算法

时间秒杀一切 提交于 2019-11-26 23:58:12
一、简介 在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是 f t-1 (x) 损失函数是 L(y,f t-1 (x)) 我们本轮迭代的目标是学习到弱学习器h t (x),让本轮的损失 L(t,f t-1 (x)+h t (x)) 最小。 假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。 也就是说我们要求的是高偏差,然后一步一步慢慢缩小这个偏差。 二、负梯度拟合 初始化若学习分类器是: 每一轮都有一个损失函数要去拟合,因为是偏差,所以找不到一个真实值来去拟合。因此提出了一种方法: 用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个cart回归树 。 第t轮的第i个样本的损失函数的负梯度表示为: 利用(x i ,r ti )(i=1,2,...m),我们可以拟合一颗CART回归树,得到了第t颗回归树,其对应的叶节点区域Rtj,j=1,2,...,J。其中J为叶子节点的个数。 每个叶子节点里有多个样本,然后求出使损失函数最小时的输出值ct j (类似于标签): 这样我们就得到了本轮的决策树拟合函数如下: 本轮最终得到的强学习器的表达式如下: 三、GBDT常用损失函数 分类 指数损失函数