@ramonyeung
2016-04-27T09:37:15.000000Z
字数 1429
阅读 480
机器学习
GBDT(Gradient Boosting Decision Tree)迭代决策树, 也是GBRT(Gradient Boost Regression Tree).
输入数据仍然支持libsvm的格式.
每一行都是label index1:value1 index2:value2
xgboost对label的要求要从0开始。
比如2分类,label只能是0,1。
3分类,label只能是0,1,2。
决策树类算法的缺点在于,它非常的武断。就像现代考试制度一样,59.9和60.1对于决策树来说可以完全是两码事。而SVM就人性化多了。个人认为这也是为什么决策树要引入gradientboosting的原因,决策树森林很大程度上是通过多个树的加和来弱化了这种武断的条件函数的缺点。至于大家异口同声的过拟合的问题,是可以通过限定叶子节点最小的实例数目来缓解的,个人不认为是大问题。而且过拟合问题不是决策树独有的,神经网络也过拟合呀,cross-validation不就是用来解决这个问题的吗。
许多GradientBoost论文下看到上面的公式. 写个注释.
步骤1:可以看作优化目标的损失函数;
步骤2:代表需要学习1~M个模型;
步骤3:将前m-1个模型的组合F(X)代入损失函数L(y_i, F(X)),并对F(X)求导,求得梯度向量表达式;举例说明,如果损失函数是,则对F(X)求导,得到,当i从1取到N时,得到梯度方向的向量;
步骤4:得到梯度向量之后,我们需要的是梯度向量方向上的新的模型,该模型需与梯度方向越接近越好,故,最小二乘法派上了用场,对步骤4的表达式求导,令等于0,可求得新模型的参数a;
步骤 5:模型解出后,组合新模型之后得到的模型应该也满足损失函数最小,因此,对组合权重求导,令等于0;
步骤 6,模型参数与模型权重参数求出之后,即得到了新模型;
步骤 7:重复M次,训练也M个模型。
GBDT的适用范围
该版本GBDT几乎可用于所有回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBDT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。
CTR预估中GBDT与LR融合方案
GBDT算法
几百棵树决策可视化
GBDT源码剖析
GBDT源码解读
Github:dmlc/xgboost
Github:guestwalk/kaggle-2014-criteo
机器学习相关博客:
苏冉旭的博客
GBDT(MART)概念简介
GBDT(MART) 迭代决策树入门教程 | 简介
leftnoteasy(数学基础+常见算法+分布式)
模型组合(Model Combining)之Boosting与Gradient Boosting
JerryLead博客
Distributed Asynchronous Hyperparameter Optimization in Python
Cross-Validation
Kaggle大神实战经验
机器学习算法中GBDT和XGBOOST的区别有哪些?
第一次遇到这么清晰的GBDT讲解
决策树分为两大类, 分类和回归, 回归企图得到连续值, 分类企图得到离散值. GBDT是回归树.
相关性分析中,自变量和因变量是平等的,回归分析中则不是.而拟合属于回归分析的范畴.
bagging的思想缺点在于有放回抽样让数据重复, 数据的分布被改变了. 模型不可