引言
上一节中介绍了《随机森林算法》,该算法使用bagging的方式作出一些决策树来,同时在决策树的学习过程中加入了更多的随机因素。该模型可以自动做到验证过程同时还可以进行特征选择。
这一节,我们将决策树和AdaBoost算法结合起来,在AdaBoost中每一轮迭代,都会给数据更新一个权重,利用这个权重,我们学习得到一个g,在这里我们得到一个决策树,最终利用线性组合的方式得到多个决策树组成的G。
1. 加权的决策树算法(Weighted Decision Tree Algorithm)
在引言中介绍了,我们利用AdaBoost的思想,为数据赋予不同的权重,而在将要介绍的Adaptive Boosted Decision Tree中,要建立加权的决策树,所以接下来就要介绍它。
在之前含有权重的算法中,权重作为衡量数据重要性的一项指标,用来评估训练误差,如下面的公式所示:
上面的公式中,权重是包含在误差的公式中的,也就是说,我们想要构造一个带有权重的决策树算法,需要改造决策树的误差度量函数。然而换一个角度,权重也可以等效于数据的重复次数,重复次数越多的数据,说明其越重要。在广义的随机算法中,我们可以根据权重比例来进行随机采样(比如,如果权重比例是30%,那么采样该数据的概率就是30%),根据这种方式得到一组新的数据,那么这组新的数据中的比例大概就是和权重的比例呈正比的,也就是说它能够表达权重对于数据的意义。
在AdaBoost-DTree中,为了简单起见,我们不去改变AdaBoost的框架,也不去修改决策树的内部细节,而只是通过基于权重的训练数据的采样来实现。
1.1 弱决策树算法
在AdaBoost算法中,我们通过错误率εt
来计算单个的g的权重αt
,那么如果我们使用决策树作为g的时候,g是一个完全长成的树,该树对整个数据集进行细致的切分导致Ein=0
,那么这使得εt=0
,但计算得到的权重αt
会变成无限大。
其意义是,如果使用一个能力很强的树作为g的话,那么该算法会赋予该树无限大的权重或票数,最终得到了一棵“独裁”的树(因为AdaBoost的哲学意义是庶民政治,就是集中多方的意见,及时有的意见可能是错误的),违背了AdaBoost的宗旨。
</