【机器学习】决策树(划分选择、算法流程、剪枝处理,连续值与缺失值处理)

决策树基于树结构来进行预测

决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。

决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。

划分选择

  1. 信息增益

  • 信息熵

2664fbf91b17ea9296306e62f9a02935.png

信息熵越高,纯度越低

4095a457e3c0e6f80a6172654982bd7f.png
  • 信息增益

f4db5eab5528caddf6d618702d5c255f.png

一般而言,信息增益越大,则意味着使用属性 来进行划分所获得的“纯度提升”越大

信息增益对可取值数目较多的属性有所偏好

2. 增益率

07eeae4358d42b8237aa454b57476211.png

增益率准则对可取值数目较少的属性有所偏好

3. 基尼指数

8fb5e1f88255da6f375bcd107ecfab16.png

算法流程

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

从根结点开始,对结点选择一个最优特征。由该特征的不同取值建立子结点,再对子结点递归地调用以上方法,直至(1)当前结点包含的样本全部属于同一类别(2)当前属性集为空,或所有样本在所有属性上取值相同,无法划分(3)当前结点包含的样本集合为空,不能划分。构建叶结点,最后每个子集都被分配到了叶结点上,即都有了明确的类,这样就生成了一棵决策树。

91d928ba584ae79d63dbf78654f72a67.png

剪枝处理

  1. 为什么剪枝

可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当做所有数据都具有的一般性质而导致的过拟合。

2. 预剪枝

决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点记为叶结点,其类别标记为训练样例数最多的类别。

  • 优点

降低过拟合风险

显著减少训练时间和测试时间开销

  • 缺点

欠拟合风险:有些分支的当前划分虽然不能提升泛化性能,但在其基础上进行的后续划分却有可能导致性能显著提高。预剪枝基于“贪心”本质禁止这些分支展开,带来了欠拟合风险

3. 后剪枝

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

  • 优点

后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化性能往往优于预剪枝决策树

  • 缺点

训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶结点逐一考察

4. 例子

12f9fd700c5d42b73d58d9ccdf4aa4c7.png
  • 预剪枝

1b4c34ff4cbc612e0afeb51fd828a5ec.png
9c3aa1e5dcf99490ece6bd5b57a54325.png
15f36efd597b0fb3ff96d9026cbf3d6b.png
  • 后剪枝

68a40391f830a0b45fed560614269c4e.png
713327c4c1f707234ab7ebb45b9ed2ec.png
cc1094a59462b51578c72926b4953d3c.png

连续值与缺失值

  1. 连续值处理

5329a07222e92dde0d8b779e7b580109.png
e8742cf8ed59df93e1f2561490a5fe16.png

与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性

2. 缺失值处理

  • 如何在属性缺失的情况下进行划分属性选择?

eb4288cd9ddf04eec49a27e528b0b479.png

例子:

640e2b9bb1ccbbcb8d065ec537c962e8.png
5e037f4f2a13137d4a5bb6b1525cdcd2.png
  • 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

309ee9e7117b61c0dc25a900d693030d.png

例子:

若划分属性选择为纹理:

263d44862a29413bd5dbdcf3209f2864.png

多变量决策树

89543960f0d4bf1ee4941750a11f6294.png
8bd74eeff15f93a8a586a92989ddc605.png

 

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值