决策树

第四章 决策树

4.1 基本流程

决策树(decision tree)是一类常见的机器学习算法。
例如,我们要对”这是好瓜吗?”这样的问题进行决策时,通常会进行一系列的判断或”子决策”:比如根据它的颜色,根蒂等一些属性进行判断。
一棵决策树包含一个根节点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中,根结点包含样本全集。
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。
其基本流程如下:
输入:训练集 D = {( x1,y1 x 1 , y 1 ),( x2,y2 x 2 , y 2 ),…,( xn,yn x n , y n )}
        属性集 A = { a1,a2,...,a3 a 1 , a 2 , . . . , a 3 }
过程:函数TreeGenerate(D,A)
1:生成结点node;
2:if D D 中样本全属于同一类别C then
3:   将node标记为C类叶结点;return
4:end if
5:if A = OR D D 中样本在A上取值相同 then
6:   将node标记为叶结点,其类别标记为D中样本数最多的类;return
7:end if
8:从A中选择最优划分属性a;
9:for a a ∗ 的每一个值 av a ∗ v do
10:   为node生成一个分支;令 Dv D v 表示 D D 中在a上取值为 av a ∗ v 的样本子集;
11:   if  Dv D v 为空 then
12:      将分支结点标记为叶结点,其类别标记为 D D 中赝本最多的类;return
13:   else 
14:      以TreeGenerate(Dv, A A {a})为分支结点
15:   end if
16:end for
输出:以node为根结点的一棵决策树

4.2 划分选择

我们希望随着划分过程的不断进行,决策树的分支结点所包含的样本尽可能属于同一类别,即结点的”纯度”(purity)越来越高

4.2.1 信息增益

“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为 pk(k=1,2,3...,|y|) p k ( k = 1 , 2 , 3... , | y | ) ,则D的信息熵定义为

Ent(D)=k=1|y|pklog2pk E n t ( D ) = − ∑ k = 1 | y | p k l o g 2 p k

Ent(D)的值越小,则D的纯度越高

“信息增益”(information gain):

Gain(D,a)=Ent(D)v=1V|Dv||D|Ent(DV) G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V | D v | | D | E n t ( D V )

其中离散属性 a a V个可能的取值{ a1,a2,...,aV a 1 , a 2 , . . . , a V },若使用 a a 来对样本集D进行划分,则会产生 V V 个分支结点,其中第v个分支结点包含了 D D 中所有在属性a上却只为 av a v 的样本,记为 Dv D v
一般而言,信息增益越大,则意味着使用属性 a a 类似进行划分所获得的”纯度提升”越大。因此我们可以用信息增益来进行决策树的属性划分。

4.2.2 增益率

信息增益准则对可却只数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,我们可以使用”增益率”(gain ratio)来进行属性划分:

Gain_ratio(D,a)=Gain(D,a)IV(a)

其中
IV(a)=v=1V|Dv||D|log2|Dv||D| I V ( a ) = − ∑ v = 1 V | D v | | D | l o g 2 | D v | | D |

称为属性a的固有值(intrinsic value),属性a可能取值数目越多(即V越大),则IV(a)的值通常会越大。增益率准则对可取值数目较少的属性有所偏好

4.2.3 基尼指数

数据集D的纯度可用基尼值来度量:

Gini(D)=k=1|y|kkpkpk=1k=1|y|p2k G i n i ( D ) = ∑ k = 1 | y | ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 | y | p k 2

Gini(D)越小,则数据集D的纯度越高
属性a的基尼指数定义为
Gini_index(D,a)=v=1V|Dv||D|Gini(Dv) G i n i _ i n d e x ( D , a ) = ∑ v = 1 V | D v | | D | G i n i ( D v )

4.3 剪枝处理

剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段,决策树剪枝的基本策略有“预剪枝”(prepruning)和“后剪枝”(post-pruning)

4.4 连续和缺失值

4.4.1 连续值处理

遇到连续值可以采用连续属性离散化技术,最简单的策略就是采用二分法(bi-partition)对连续属性进行处理

4.4.2 缺失值处理

4.5多变量决策树

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值