94

问答题 94 /392

rf和gbdt基分类器区别,里面的决策树分别长啥样,怎么剪枝

参考答案

参考回答:

GBDT和RF都是集成方法中的经典模型,我们需要弄清楚下面几个问题:1)GBDT是采用boosing方法,RF采用的是baggging方法;2)bias和variance是解释模型泛化性能的,其实还有噪声。

然后,理解GBDT和RF执行原理,其中GBDT中的核心是通过用分类器(如CART、RF)拟合损失函数梯度,而损失函数的定义就决定了在子区域内各个步长,其中就是期望输出与分类器预测输出的查,即bias;而RF的核心就是自采样(样本随机)和属性随机(所有样本中随机选择K个子样本选择最优属性来划分),样本数相同下的不同训练集产生的各个分类器,即数据的扰动导致模型学习性能的变化,即variance。

Gradient boosting Decision Tree(GBDT)

GB算法中最典型的基学习器是决策树,尤其是CART,正如名字的含义,GBDT是GB和DT的结合。要注意的是这里的决策树是回归树,GBDT中的决策树是个弱模型,深度较小一般不会超过5,叶子节点的数量也不会超过10,对于生成的每棵决策树乘上比较小的缩减系数(学习率<0.1),有些GBDT的实现加入了随机抽样(subsample 0.5<=f <=0.8)提高模型的泛化能力。通过交叉验证的方法选择最优的参数。

Random Forest:

bagging (你懂得,原本叫Bootstrap aggregating),bagging 的关键是重复的对经过bootstrapped采样来的观测集子集进行拟合。然后求平均。。。一个bagged tree充分利用近2/3的样本集。。。所以就有了OOB预估(outof bag estimation)

GBDT和随机森林的相同点:

1)都是由多棵树组成;2)最终的结果都是由多棵树一起决定

GBDT和随机森林的不同点:

1)组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成;

2)组成随机森林的树可以并行生成;而GBDT只能是串行生成;

3)对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来;

4)随机森林对异常值不敏感,GBDT对异常值非常敏感;

5)随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成;

6)随机森林是通过减少模型方差提高性能,GBDT是通过减少模型偏差提高性能。

RF决策树:

学习随机森林模型前,一定要先了解决策树模型。树越深,模型越复杂。

决策树模型的优点如下。1)容易理解和解释,树可以被可视化。2)不需要太多的数据预处理工作,即不需要进行数据归一化,创造哑变量等操作。3)隐含地创造了多个联合特征,并能够解决非线性问题。

GBDT决策树:

迭代决策树GBDT(Gradient Boosting Decision Tree)也被称为是MART(Multiple Additive Regression Tree))或者是GBRT(Gradient Boosting Regression Tree),也是一种基于集成思想的决策树模型,但是它和Random Forest有着本质上的区别。不得不提的是,GBDT是目前竞赛中最为常用的一种机器学习算法,因为它不仅可以适用于多种场景,更难能可贵的是,GBDT有着出众的准确率。

树的剪枝:

(1)前剪枝( Pre-Pruning)

通过提前停止树的构造来对决策树进行剪枝,一旦停止该节点下树的继续构造,该节点就成了叶节点。一般树的前剪枝原则有:a.节点达到完全纯度;b.树的深度达到用户所要的深度;c.节点中样本个数少于用户指定个数;d.不纯度指标下降的最大幅度小于用户指定的幅度。

(2)后剪枝( Post-Pruning)

首先构造完整的决策树,允许决策树过度拟合训练数据,然后对那些置信度不够的结点的子树用叶结点来替代。CART 采用Cost-Complexity Pruning(代价-复杂度剪枝法),代价(cost) :主要指样本错分率;复杂度(complexity) :主要指树t的叶节点数,(Breiman…)定义树t的代价复杂度(cost-complexity):信息熵H(X),信息增益=H(D)-H(Y|X),信息增益率=gain(x)/H(x),Gini系数=1-sum(pk^2),基尼系数就是熵在x=1的地方一阶泰勒展开得到f(x)=1-x,所以gini=sum[x(1-x)]=1-sum(x^2)。