参考材料:《机器学习》周志华(西瓜书)
内容框架:
1、基本算法流程
2、划分选择方法
3、决策树剪枝
4、连续值与缺失值处理
5、多变量决策树
1、基本算法
主要是要判断何时成为叶节点、何时生成分支以及如何生成。
![8d448ebd6132b9ca48941466662f00e8.png](https://img-blog.csdnimg.cn/img_convert/8d448ebd6132b9ca48941466662f00e8.png)
2、划分选择方法
2.1信息增益
“信息熵”是度量样本纯度的最常用指标,其中pk是集合中第k类的比例。Ent值越小,纯度越高。
![be0e68a9545ee5ad4ca66ab098af016f.png](https://img-blog.csdnimg.cn/img_convert/be0e68a9545ee5ad4ca66ab098af016f.png)
信息增益公式如下,信息增益越大,用a划分的的提升越大。
![e9dac53744d3914a9bac465a84eb784a.png](https://img-blog.csdnimg.cn/img_convert/e9dac53744d3914a9bac465a84eb784a.png)
2.2 增益率(C4.5决策树算法)
由于信息增益准则对可取值较多的属性有所偏好,为了减少偏好带来的不利影响,C4.5算法不直接使用信息增益,而是用增益率。
但是由于增益率对可取值较少的属性有偏好,所以算法使用的是一个启发式:先从划分属性中选择信息增益高于均值的属性集,然后再选择增益率高的。
增益率公式:
![8a6cd2eff4eda5f773e3d75c478d46da.png](https://img-blog.csdnimg.cn/img_convert/8a6cd2eff4eda5f773e3d75c478d46da.png)
其中Dv是指集合D根据a属性划分出来的子集。
2.3 基尼指数(CART算法)
基尼值公式:
![6f2a229cc26d02d566891013146b1bc4.png](https://img-blog.csdnimg.cn/img_convert/6f2a229cc26d02d566891013146b1bc4.png)
基尼值反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,基尼值越小越纯。
属性a的基尼指数定义,所以会选择划分后基尼指数最小的属性:
![640ca86a5e6c8ddd204aec22446102ba.png](https://img-blog.csdnimg.cn/img_convert/640ca86a5e6c8ddd204aec22446102ba.png)
3、决策树剪枝
剪枝是解决过拟合的主要手段。有“预剪枝”(prepruning)和“后剪枝”(postpruning)。
预剪枝是在决策树生成过程中,结点划分前先进行估计,如果节点的划分不能带来决策树泛化性能提升,则停止划分并将当前节点标记为叶结点。
后剪枝是先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,如果将该子树替换为叶结点能带来决策树泛化性能提升,则将该结点对应的子树替换为叶结点。
如何判断泛化性能呢?可以参考之前的文章“四、性能度量”。
Lamcky:【数据模型】模型评估与选择zhuanlan.zhihu.com比如用留出法,留一部分数据做验证,进行性能评估,看在训练集上得出的决策树是否能够提升验证集的泛化性能。
方法评价:
1)预剪枝会使得决策树的很多分支都没有“展开”,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销,和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却又可能导致性能显著提高;预剪枝基于“谈心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
2)后剪枝比预剪枝保留了更多的分支。一般情况下后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比较大。
4、连续值与缺失值
1)连续值处理
上述阐述了离散属性来生成决策树,现实任务中会遇到连续属性。
最简单的策略是采用二分法(C4.5决策树算法中采用的机制)。
将连续取值排序并以每两个相邻的值的中间位置作为候选划分点,然后就可以像离散值那样考察划分点并选择最优的划分点。
公式如下:
![c1780e4ec68c0c9028dd4d4d7b68c3a8.png](https://img-blog.csdnimg.cn/img_convert/c1780e4ec68c0c9028dd4d4d7b68c3a8.png)
2)缺失值
——如何在属性值缺失的情况下进行划分属性选择?
可以仅根据没有缺失值的样本子集来判断a的优劣:
![3ee3e88c6703816e820a24c4364b4e44.png](https://img-blog.csdnimg.cn/img_convert/3ee3e88c6703816e820a24c4364b4e44.png)
![1837a3814d6ba4b06d1ae78fce6c6a1e.png](https://img-blog.csdnimg.cn/img_convert/1837a3814d6ba4b06d1ae78fce6c6a1e.png)
其中ρ是无缺失值样本所占的比例。
——给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
如果样本在该属性上取值未知,那么就将样本按比例加入到所有子结点,分配比例为子结点的权重。
比如x的a属性缺失,其中a属性有两个类别i和j,分别有3个和4个样本,因此3/7的x进入i,4/7的x进入j。
5、多变量决策
多变量划分时边界显示比较复杂(连续变量可以用于多次划分使用)
![8b1fa281592e01702eac806b1569c5ad.png](https://img-blog.csdnimg.cn/img_convert/8b1fa281592e01702eac806b1569c5ad.png)
如果用线性分类器进行划分则会简化:
![4dda471d14dc9f5dfb8707e44bd6e575.png](https://img-blog.csdnimg.cn/img_convert/4dda471d14dc9f5dfb8707e44bd6e575.png)
![4de2bdd60ca50a79428f0c840b129ebd.png](https://img-blog.csdnimg.cn/img_convert/4de2bdd60ca50a79428f0c840b129ebd.png)