机器学习(4) -- 决策树

4.1 基本流程

一般,一个决策树包含根节点、若干内部节点和若干叶节点;叶节点对应于决策结果,其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子结点中;根节点包含样本全集。从根节点到每个叶结点的路径对应了一个判定测试序列

决策树生成是一个递归过程,三种情形导致递归返回

1)当前结点包含的样本全属于同一类别,无需划分。

2)当前属性集为空,或所有样本在所有属性上取值相同,无法划分。把当前结点标记为叶结点,类别设定为该结点所含样本最多的类别。是利用当前结点的先验分布

3)当前结点包含的样本集合为空,不能划分。把当前结点标记为叶结点,但其类别设定为其父节点所含样本最多的类别。是把父结点的样本分布作为当前结点的先验分布

4.2 划分选择

信息熵

信息增益

信息增益率

,其中 

基尼值

基尼指数

信息熵越小,纯度越高

信息增益越大,则使用属性a所获得的“纯度提升”越大

基尼值Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率;因此,Gini越小,数据集D的纯度越高

基尼指数是基尼值的加权平均,因此基尼指数越小,数据集纯度越高

ID3决策树学习算法以信息增益为准则来选择划分属性。信息增益准则对可取值数目较多的属性有所偏好

C4.5决策树算法使用信息增益率来选择最优划分属性。增益率准则对可取值数目较少的属性有所偏好。

C4.5算法不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

CART决策树使用基尼指数来选择划分属性,在候选属性集合A中,选择那个使得划分后尼基指数最小的属性作为最优划分属性

4.3 剪枝处理

剪枝:对付过拟合

预剪枝:在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点;

后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

后剪枝决策树通常比预剪枝决策树保留了更多的分支。一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大很多

4.4 连续与缺失值

遇到连续属性,可用连续属性离散化技术,最简单的策略是采用二分法对连续属性进行处理,这是C4.5算法中采用的决策机制

 

缺失值处理:解决两个问题:如何在有缺失值的情况下进行划分属性选择?给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

表示D中在属性a上没有缺失值 的样本子集, 表示样本x的权重

ρ表示无缺失值样本所占比例

表示无缺失样本中第k类所占比例

表示无缺失样本中在属性a上取值为 的样本所占的比例

此时计算信息增益:

上面解决了第一个问题,对于第二个问题:

若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值保持为

若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在属性值对应的子结点中调整为·

4.5 多变量决策树

若我们把每个属性视为坐标空间中的一个坐标轴,则d个属性描述的样本就对应了d维空间中的一个数据点,对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界。决策树形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。这样的分类边界使得学习结果有较好的可解释性,因为每一段划分都直接对应了某个属性取值。但在学习任务的真实分类边界比较复杂时,必须使用很多段划分才能获得较好的近似,此时决策树就会相当复杂,预测时间开销会很大。

若能使用斜的划分边界,则决策树模型将大为简化。

多变量决策树:斜的划分边界,非叶结点不再是仅对某个属性,而是对属性的线性组合;也就是,每个非叶结点是一个形如的线性分类器,其中  是属性  的权重, 和 t 可在该结点所含的样本集合属性集上学得。多变量决策树不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。

 

 

发布了24 篇原创文章 · 获赞 2 · 访问量 201

猜你喜欢

转载自blog.csdn.net/weixin_43575791/article/details/105451608
今日推荐