《机器学习》(二)决策树算法

一、ID3算法

    ID3算法的核心要义是在决策树各个结点上应用信息增益准则选择最好的特征,递归地构建决策树。具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该结点的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一个决策树。
需要记住的两个公式:

熵:

\large Entropy(S)=-\sum_{i=1}^{c}p_{i}log_{2}(p_{i})

信息增益:

\large Gain(S,A)=Entropy(S)-\sum_{v\in A}\frac{S_{v}}{S}Entropy(S_{v})

(Sv:属性A取“v”值时的子集)

用一个例子来理解:

ID3算法的缺点:ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。这大大限制了ID3的用途。ID3采用的信息增益度量存在一个内在偏置,它优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益。ID3算法没有考虑缺失值的情况。ID3算法没有考虑“过拟合”overfitting的问题。

二、C4.5算法

    C4.5算法总体思路与ID3类似,都是通过构造决策树进行分类,其区别在于分支的处理,在分支属性的选取上,ID3算法使用信息增益作为度量,而C4.5算法引入了信息增益率作为度量。

    避免ID3不足的一个度量就是不用信息增益来选择Feature,而是用信息增益比率(gainratio),增益比率通过引入一个被称作分裂信息(Splitinformation)的项来惩罚取值较多的Feature,分裂信息用来衡量Feature分裂数据的广度和均匀性。

同样需要记住的两个公式:

分裂信息

\large SplitInformation(S,A)=-\sum_{i=1}^{c}\frac{\left | S_{i} \right |}{\left | S \right |}log_{2}\frac{\left | S_{i} \right |}{\left | S \right |}

信息增益率

\large GainRatio(S,A)=\frac{Gain(S,A)}{SplitInformation(S,A)}

C4.5算法的缺点:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

三、CART算法

    CART算法采用的是一种二分循环分割的方法,每次都把当前样本集划分为两个子样本集,使生成的决策树的结点均有两个分支。如果分支属性有多于两个取值,在分裂时会对属性值进行组合,选择最佳的两个组合分支。ID3 和 C4.5两种算法都是用来解决分类问题的,我们使用CART算法(分类回归树)来解决回归问题。

 需要记住两个个公式:

基尼指数

\large Gini(S)=\sum_{i=1}^{c}p_{i}(1-p_{i})

条件基尼指数

\large Gini(S,A)=\sum_{i=1}^{c}\frac{S_{i}}{S}Gini(S_{i})

发布了82 篇原创文章 · 获赞 265 · 访问量 58万+

猜你喜欢

转载自blog.csdn.net/zhiyeegao/article/details/104857229