本文主要讲解:决策树,随机森林和xgboost,附带讲解AdaBoost和GBDT
1.决策树
这些算法都依赖于决策树或者决策树的各种魔改版,所以决策树是一定要掌握清楚的。决策树是一种常见的机器学习算法,决策树的目的是构造一种模型,使之能够从样本数据的特征属性中,通过学习简单的决策规则——IF THEN规则,从而预测目标变量的值。以西瓜的例子来说,给定类似色泽,根蒂以及敲声等特征,怎么判断一个西瓜是不是好西瓜。
通过一系列的判定,最终得到【色泽=青绿, 根蒂=蜷缩,敲声=浊响】的西瓜是好瓜。
一般来说,一棵决策树包含一个根节点,若干个内部节点和若干个叶节点。其中,叶节点对应与决策结果,其他每个节点则对应一个属性测试。这里最重要的是如何选择最优属性进行划分?为什么色泽是第一个属性而不是根蒂呢?这里引出了各种划分选择。
1.1 信息增益(ID3算法)
目前的决策树算法主要有:ID3, ID4.5和CART。在ID3中,按照信息增益作为准则来选取划分属性。我们希望决策树的分支节点包含的样本尽可能属于同一类别,即结点的‘纯度’越来越高。
‘信息熵’是度量样本集合纯度最常用的一种指标。
假定当前样本集合D中第k类样本所占比例为(k = 1, 2, ..... ),D的信息熵定义为:
其中,为D的样本类别总类。如西瓜例子中标签为好瓜和坏瓜,则。
信息熵是一个节点的固有性质,对于确定的数据集来说,这是一个定值。
在定义了信息熵之后,对信息增益进行定义,假设选取属性a有V个取值(即能被分成v份),。按照决策树的规则,D将被划分为V个不同的节点数据集。考虑到不同节点包含样本数不同,给分支赋予相对于的权重,即样本越多的分支权重越大。于是,我们可以算出用属性a对样本集D进行划分得到的‘信息增益’: