文章目录

  • 一.决策树模型与学习
    • 1.1 决策树模型
    • 1.2 决策树与 if-then 规则
    • 1.3 决策树与条件概率分布
    • 1.4 决策树的学习
  • 二.特征选择
    • 2.1 信息增益
    • 2.2 例题:利用信息增益求解问题
    • 2.3 信息增益比
  • 三.决策树的生成
    • 3.1 ID3算法
    • 3.2 例题:利用ID3算法建立决策树
    • 3.3 C4.5算法
  • 四.决策树的剪枝
    • 4.1 剪枝算法
  • 五.CART树
    • 5.1 CART回归树生成
    • 5.2 CART分类树生成
    • 5.3 例题:应用CART算法生成决策树
  • 推荐文章
  • 参考资料

决策树(decision tree) 是一种基本的分类与回归方法.本章主要讨论 用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if−then是if-then是if−then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。这些决策树学习的思想主要来源于由Quinlan在1986年提出的 ID3算法和1993年提出的C4.5算法,以及由Breiman等人在1984年提出的CART算法本章首先介绍决策树的基本概念,然后通过ID3和C4.5介绍特征的选择、决策树的生成以及决策树的修剪,最后介绍CART算法.

一.决策树模型与学习

1.1 决策树模型

定义5.1 (决策树) 分类决策树模型 是一种描述对实例进行分类的树形结构。决策树由 结点(node)有向边(directed edge) 组成.结点有两种类型:内部结点(intermnal node)和叶结点(leaf node)。 内部结点表示一个特征或属性,叶结点表示一个类.

用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。

图5.1是一个决策树的示意图。图中圆和方框分别表示内部结点和叶结点.
                                                

1.2 决策树与 if-then 规则

可以将决策树看成一个if−thenif-thenif−then规则的集合。将决策树转换成if−thenif-thenif−then规则的过程是这样的:由决策树的根结点到叶结点的每一条路径构建一 条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if−thenif-thenif−then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。这里所谓覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。

1.3 决策树与条件概率分布

决策树还表示给定特征条件下类的 条件概率分布。这一条件概率分布定义在特征空间的一个划分(partition) 上.。将特征空间划分为互不相交的单元(cel)或区域(region),并在每个单元定义一个类的概率分布就构成了一个条件概率分布,决策树的一条路径对应于划分中的一个单元,决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。假设XXX为表示特征的随机变量,YYY为表示类的随机变量,那么这个条件概率分布可以表示为P(Y∣X)P(Y|X)P(Y∣X). XXX取值于给定划分下单元的集合,YYY取值于类的集合,各叶结点(单元)上的条件概率往往偏向某一个类,即属于某一类的概率较大。 决策树分类时将该结点的实例强行分到条件概率大的那一类去.

图 5.2 (a) 示意地表示了特征空间的一个划分。图中的大正方形表示特征空间。这个大正方形被若干个小矩形分割,每个小矩形表示一个单元特征空间划分上的单元构成了一个集合,xxx取值为单元的集合,为简单起见,假设只有两类:正类和负类,即YYY取值为+1+1+1和−1-1−1。小矩形中的数字表示单元的类,图 5.2 (b) 示意地表示特征空间划分确定时,特征(单元)给定条件下类的条件概率分布。图 5.2 (b) 中条件概率分布对应于图 5.2 (a) 的划分.当某个单元 c 的条件概率满足P(Y=+1∣X=c)>0.5P(Y=+1|X =c)> 0.5P(Y=+1∣X=c)>0.5 时,则认为这个单元属于正类,即落在这个单元的实例都被视为正例.图 5.2 © 为对应于图5.2 (b)中条件概率分布的决策树.

1.4 决策树的学习

决策树学习,假设给定训练数据集

D={(x1,y1),(x2,y2),⋯,(xn,yn)}D = \lbrace(x1, y1), (x2, y2),\cdots,(x_n, y_n)\rbraceD={(x1,y1),(x2,y2),⋯,(xn​,yn​)}

其中,xi=(xi(1),xi(2),⋯,xi(n))x_i = (x_i^{(1)}, x_i^{(2)}, \cdots, x_i^{(n)})xi​=(xi(1)​,xi(2)​,⋯,xi(n)​) 为输入实例(特征向量),nnn 为特征个数,yi∈{1,2,⋯,K}y_i∈\lbrace1,2,\cdots,K\rbraceyi​∈{1,2,⋯,K} 为类标记,i=1,2,⋯,Ni = 1, 2,\cdots,Ni=1,2,⋯,N,NNN为样本容量。学习的目标是根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。

决策树学习的策略是以损失函数为目标函数,然后求取其最小化的过程,如下所述,决策树学习的损失函数通常是正则化的极大似然函数

当损失函数确定以后,学习问题就变为在损失函数意义下选择最优决策树的问题.因为从所有可能的决策树中选取最优决策树是 NP完全问题,所以现实中决策树学习算法通常采用启发式方法,近似求解这一最优化问题.这样得到的决策树是次最优( sub-optimal)的.

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。开始,构建根结点,将所有训练数据都放在根结点,选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去:如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归地进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特征为止。 最后每个子集都被分到叶结点上,即都有了明确的类.这就生成了一棵决策树.

二.特征选择

特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率,如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的准则是 信息增益信息增益比

例表5.1 是一个由 15 个样本组成的贷款申请训练数据。数据包括贷款申请人的 4 个特征(属性):第 1 个特征是年龄,有 3 个可能值:青年,中年,老年;第 2 个特征是有工作,有 2 个可能值:是,否;第 3 个特征是有自己的房子,有 2 个可能值:是,否;第 4 个特征是信贷情况,有 3 个可能值:非常好,好,一般。表的最后一列是类别,是否同意贷款,取2个值:是,否。

希望通过所给的训练数据学习一个贷款申请的决策树,用以对未来的贷款申请进行分类,即当新的客户提出贷款申请时,根据申请人的特征利用决策树决定是否批准贷款申请。

图5.3 表示从表5.1 数据学习到的两个可能的决策树,分别由两个不同特征的根结点构成。图5.3 (a)所示的根结点的特征是年龄,有3个取值,对应于不同的取值有不同的子结点。图5.3 (b)所示的根结点的特征是有工作,有2个取值,对应于不同的取值有不同的子结点。两个决策树都可以从此延续下去,问题是:究竟选择哪个特征更好些? 这就要求确定 选择特征的准则。直观上,如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就更应该选择这个特征。信息增益(information gain) 就能够很好地表示这一直观的准则.
                                                           

2.1 信息增益

为了便于说明,先给出 条件熵的定义.在信息论与概率统计中,熵(entropy) 是表示随机变量不确定性的度量。熵值越大,则随机变量的不确定性越高,设 xxx 是一个取有限个值的离散随机变量,其概率分布为

P(X=xi)=pi,i=1,2,⋯,nP(X = x_i) = p_i,i = 1,2,\cdots,nP(X=xi​)=pi​,i=1,2,⋯,n

则随机变量XXX的熵定义为

H(X)=−∑i=1npilogpiH(X) = -\sum_{i = 1}^np_ilog p_iH(X)=−i=1∑n​pi​logpi​

在上式中,若pi=0p_i = 0pi​=0, 则定义0log0=00log0 = 00log0=0。通常,上式中的对数以 2 为底或以 e 为底(自然对数),这是熵的单位分别称作比特(bit) 或纳特(nat)。由定义可知,熵只依赖XXX的分布,而与XXX的取值无关,所以也可将XXX的熵记作H(p)H(p)H(p),即
H(p)=−∑i=1npilogpiH(p) = -\sum_{i = 1}^np_ilogp_iH(p)=−i=1∑n​pi​logpi​
熵越大,随机变量的不确定性就越大。从定义可验证
0≤H(p)≤logn0 \leq H(p) \leq logn0≤H(p)≤logn

当随机变量只取两个值,例如1,0时,即X的分布为
P(X=1)=p,P(X=0)=1−p,0≤p≤1P(X = 1) = p,P(X=0) = 1 - p, 0 \leq p \leq 1P(X=1)=p,P(X=0)=1−p,0≤p≤1

熵为
H(p)=−plog2p−(1−p)log2(1−p)H(p) = -plog_2p - (1-p)log_2(1-p)H(p)=−plog2​p−(1−p)log2​(1−p)

这时,熵 H(p)H(p)H(p) 随概率 p 变化的曲线如图5.4所示(单位为比特).

当p=0或p=1时H(p)=0p=0或p=1时H(p)=0p=0或p=1时H(p)=0,随机变量完全没有不确定性。当p=0.5时,H(p)=1p=0.5时,H(p)=1p=0.5时,H(p)=1,熵取值最大,随机变量不确定性最大.

设有随机变量(X,Y)(X,Y)(X,Y),其联合概率分布为
P(X=xi,Y=yj)=pij,i=1,2,⋯,n;j=1,2,⋯,mP(X = x_i,Y = y_j) = p_{ij},i = 1,2,\cdots,n;j = 1,2,\cdots,mP(X=xi​,Y=yj​)=pij​,i=1,2,⋯,n;j=1,2,⋯,m

条件熵H(Y∣X)H(Y |X)H(Y∣X)表示在已知随机变量XXX的条件下随机变量YYY的不确定性。随机变量XXX给定的条件下随机变量YYY的条件(conditional entropy) H(Y∣X)H(Y|X)H(Y∣X),定义为XXX给定条件下YYY的条件概率分布的熵对XXX的数学期望
H(Y∣X)=∑i=1npiH(Y∣X=xi)H(Y|X) = \sum_{i = 1}^np_iH(Y|X = x_i)H(Y∣X)=i=1∑n​pi​H(Y∣X=xi​)

这里,pi=P(X=xi),i=1,2,⋯,n.p_i = P(X = x_i),i = 1,2,\cdots,n.pi​=P(X=xi​),i=1,2,⋯,n.

当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为 经验(empiricalentropy)熵经验条件熵(empiricalconditional entropy)。此时,如果有0概率,令0log0=00log0=00log0=0。信息增益(informationgain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度.

定义5.2(信息增益)
特征 AAA 对训练数据集 DDD 的信息增益g(D,A)g(D,A)g(D,A),定义为集合DDD的经验熵H(D)H(D)H(D)与特征AAA给定条件下DDD的经验条件熵H(D∣A)H(D|A)H(D∣A)之差,即
g(D,A)=H(D)−H(D∣A)g(D,A) = H(D) - H(D|A)g(D,A)=H(D)−H(D∣A)

一般地, 熵H(Y)H(Y)H(Y)与条件熵H(Y∣x)H(Y |x)H(Y∣x)之差称为 互信息(mutual information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息.

决策树学习应用信息增益准则选择特征。给定训练数据集DDD和特征AAA,经验熵H(D)H(D)H(D)表示对数据集DDD进行分类的不确定性。而经验条件熵H(D∣A)H(D| A)H(D∣A)表示在特征A给定的条件下对数据集D进行分类的不确定性。那么它们的差,即 信息增益,就表示由于特征AAA而使得对数据集DDD的分类的不确定性减少的程度。显然,对于数据集D而言,信息增益依赖于特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力.

根据信息增益准则的特征选择方法是:对训练数据集(或子集) D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。

设训练数据集为DDD,∣D∣|D|∣D∣ 表示其样本容量,即样本个数。设有 KKK 个类 CkC_kCk​, k=1,2,⋯,Kk=1,2,\cdots,Kk=1,2,⋯,K, ∣Ck∣|C_k|∣Ck​∣ 为属于类 CkC_kCk​ 的样本个数,∑k=1K∣Ck∣=∣D∣\sum_{k = 1}^K|C_k| = |D|∑k=1K​∣Ck​∣=∣D∣。

设特征 AAA 有 nnn 个不同的取值 {a1,a2,⋯,an}\lbrace a_1,a_2,\cdots,a_n\rbrace{a1​,a2​,⋯,an​},根据特征 AAA 的取值将 DDD 划分为 nnn 个子集D1,D2,⋯,DnD_1,D_2,\cdots,D_nD1​,D2​,⋯,Dn​,∣Di∣|D_i|∣Di​∣ 为 DiD_iDi​ 样本个数,∑i=1n∣Di∣=∣D∣\sum_{i = 1}^n|D_i| = |D|∑i=1n​∣Di​∣=∣D∣。记子集 DiD_iDi​ 中属于类CkC_kCk​的样本的集合为DikD_{ik}Dik​,即,|Dk |为Dk的样本个数.于是信息增益的算法如下:

算法 5.1(信息增益算法)

输入:训练数据集DDD和特征AAA;
输出:特征AAA对训练数据集DDD的信息增益g(D,A)g(D,A)g(D,A)

2.2 例题:利用信息增益求解问题

例5.2 对表 5.1 所给的训练数据集DDD,根据信息增益准则选择最优特征


(4)
g(D,A4)=0.971−0.608=0.363g(D,A_4) = 0.971 - 0.608 = 0.363g(D,A4​)=0.971−0.608=0.363

最后,比较各特征的信息增益值.由于特征A3A_3A3​ (有自己的房子)的信息增益值最大,所以选择特征 A3A_3A3​ 作为最优特征.

2.3 信息增益比

信息增益值的大小是相对于训练数据集而言的,并没有绝对意义。在分类问题困难时,也就是说在训练数据集的经验熵大的时候,信息增益值会偏。反之,信息增益值会偏小。使用 信息增益比(infornation gain ratio) 可以对这一问题进行校正,这是特征选择的另一准则.

定义5.3(信息增益比) 特征 AAA 对训练数据集 DDD 的信息增益比 gR(D,A)g_R(D,A)gR​(D,A) 定义为其信息增益 g(D,A)g(D, A)g(D,A) 与训练数据集 DDD 的经验熵 H(D)H(D)H(D) 之比:

gR(D,A)=g(D,A)H(D)g_R(D,A) = \frac{g(D,A)}{H(D)}gR​(D,A)=H(D)g(D,A)​

三.决策树的生成

本节将介绍决策树学习的生成算法。首先介绍 ID3 的生成算法,然后再介绍C4.5中的生成算法,这些都是决策树学习的经典算法.

3.1 ID3算法

ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点:再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止.最后得到一个决策树. ID3 相当于用极大似然法进行概率模型的选择.

算法 5.2(ID3算法)


3.2 例题:利用ID3算法建立决策树

例 5.3 对 表5.1 的训练数据集, 利用ID3算法建立决策树


                                                        

3.3 C4.5算法


四.决策树的剪枝

决策树生成算法递归地产生决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现 过拟合现象。过拟合的原因在于学习时过多地考虑如何提高对训练数据的正确分类,从而 构建出过于复杂的决策树。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行 简化

在决策树学习中 将已生成的树进行简化的过程称为剪枝(pruning)。具体地,剪枝从已生成的树上裁掉一些子树或叶结点, 并将其根结点或父结点作为新的叶结点,从而简化分类树模型.

本节介绍一种简单的决策树学习的剪枝算法。

决策树的剪枝往往通过 极小化决策树整体的损失函数(loss function)或代价函数(cost function) 来实现。设树 TTT的叶结点个数为∣T∣|T|∣T∣, ttt 是树 TTT 的叶结点,该叶子节点上有NtN_tNt​ 个样本点,其中 kkk 类的样本点有 NtkN_{tk}Ntk​ 个,k=1,2,⋯,Kk = 1,2,\cdots,Kk=1,2,⋯,K,Ht(T)H_t(T)Ht​(T) 为叶节点 ttt 上的经验熵,α≥0α\geq0α≥0为参数,则决策树学习的损失函数可以定义为

Cα(T)=∑t=1TNtHt+α∣T∣(5.11)C_α(T) = \sum_{t = 1}^TN_tH_t + α|T| \qquad\qquad \qquad\qquad(5.11)Cα​(T)=t=1∑T​Nt​Ht​+α∣T∣(5.11)

其中经验熵为
Ht(T)=−∑kNtkNtlogNtkNt(5.12)H_t(T) = -\sum_k\frac{N_{tk}}{N_t}log\frac{N_{tk}}{N_t} \qquad\qquad \qquad\qquad(5.12)Ht​(T)=−k∑​Nt​Ntk​​logNt​Ntk​​(5.12)

在损失函数中,将式 (5.11) 右端的第 1 项记作

C(T)=∑i=1TNtHt(T)=−∑i=1T∑k=1KNtklogNtkNt(5.13)C(T) = \sum_{i = 1}^TN_tH_t(T) = -\sum_{i = 1}^T\sum_{k = 1}^KN_{tk}log\frac{N_{tk}}{N_t} \qquad\qquad(5.13)C(T)=i=1∑T​Nt​Ht​(T)=−i=1∑T​k=1∑K​Ntk​logNt​Ntk​​(5.13)

这时有
Cα(T)=C(T)+α(T)(5.14)C_α(T) = C(T) + α(T)\qquad\qquad \qquad\qquad\qquad(5.14)Cα​(T)=C(T)+α(T)(5.14)

式 (5.14) 中,C(T)C(T)C(T) 表示模型对 训练数据的预测误差,即模型与训练数据的拟合程度,∣T∣|T|∣T∣表示 模型复杂度,参数 a≥0a≥0a≥0 控制两者之间的影响。较大的 aaa 促使选择较简单的模型(树), 较小的 aaa 促使选择较复杂的模型(树)。a=0a=0a=0 意味着只考虑模型与训练数据的拟合程度,不考虑模型的复杂度.

剪枝,就是当 aaa 确定时,选择损失函数最小的模型,即损失函数最小的子树。当 aaa 值确定时,子树越大,往往与训练数据的拟合越好,但是模型的复杂度就越高;相反,子树越小,模型的复杂度就越低,但是往往与训练数据的拟合不好。损失函数正好表示了对两者的平衡.

可以看出,决策树生成只考虑了通过提高信息增益(或信息增益比)对训练数据进行更好的拟合而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。决策树生成学习局部的模型,而决策树剪枝学习整体的模型。式 (5.11) 或式 (5.14) 定义的损失函数的极小化等价于 正则化的极大似然估计。所以,利用损失函数最小原则进行剪枝就是用正则化的极大似然估计进行模型选择.

图5.6 是决策树剪枝过程的示意图,下面介绍剪枝算法。

4.1 剪枝算法

五.CART树

分类与回归树(lassification and regression tree, CART)模型由Breiman等人在1984 年提出,是应用广泛的决策树学习方法.。CART同样由特征选择、树的生成及剪枝组成,既可以用于分类也可以用于回归。以下将用于分类与回归的树统称为决策树.

CART是在给定输入随机变量 XXX 条件下输出随机变量 YYY 的 条件概率分布 的学习方法。CART假设决策树是二叉树,内部结点特征的取值为 “是”和“否”**,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布.

决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index)最小化准则,进行特征选择生成二叉树.

5.1 CART回归树生成

假设 XXX 与 YYY 分别为输入和输出变量,并且 YYY 是连续变量,给定训练数据集

D={(x1,y1),(x2,y2),⋯,(xn,yn)}D = \lbrace(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\rbraceD={(x1​,y1​),(x2​,y2​),⋯,(xn​,yn​)}

考虑如何生成回归树。一个回归树对应着输入空间(即特征空间)的一个划分以及在划分的单元上的输出值。假设已将输入空间划分为 MMM 个单元 R1,R2,⋯,RMR_1,R_2,\cdots,R_MR1​,R2​,⋯,RM​ 并且在每个单元 RmR_mRm​上有一个固定的输出值 cmc_mcm​,于是回归树模型可表示为

f(x)=∑m=1McmI(x∈Rm)f(x) = \sum_{m = 1}^Mc_mI(x∈R_m)f(x)=m=1∑M​cm​I(x∈Rm​)

当输入空间的划分确定时,可以用平方误差 ∑xi∈Rm(y−f(xi))2\sum_{x_i∈R_m}(y - f(x_i))^2∑xi​∈Rm​​(y−f(xi​))2 来表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优输出值。易知,单元 RmR_mRm​ 上的 cmc_mcm​的最优值 cm^\hat{c_m}cm​^​ 是 RmR_mRm​ 上的所有输入实例 xix_ixi​ 对应的输出 yiy_iyi​ 的均值,即

c^m=ave(yi∣xi∈Rm)\hat{c}_m = ave(y_i|x_i∈R_m)c^m​=ave(yi​∣xi​∈Rm​)

问题是怎样对输入空间进行划分,这里采用 启发式的方法,选择第 j 个变量 x(j)x^{(j)}x(j)和它取的值 s,作为 切分变量(spliting variable)切分点(spliting point),并定义两个区域:

R1(j,s)={x∣x(j)≤s}和R2(j,s)={x∣x(j)≥s}R1(j,s) = \lbrace x|x^{(j)} ≤ s\rbrace \quad和 \quad R2(j,s) = \lbrace x|x^{(j)} ≥ s\rbraceR1(j,s)={x∣x(j)≤s}和R2(j,s)={x∣x(j)≥s}

然后 寻找最优切分变量 jjj 和最优切分点 sss。具体地,求解

min(j,s)[minc1∑xi∈R1(j,s)(yi−c1)+minc2∑xi∈R2(j,s)(yi−c2)]min_{(j,s)}\left[min_{c1}\sum_{x_i∈R_1(j,s)}(y_i - c_1) + min_{c2}\sum_{x_i∈R_2(j,s)}(y_i - c_2)\right]min(j,s)​⎣⎡​minc1​xi​∈R1​(j,s)∑​(yi​−c1​)+minc2​xi​∈R2​(j,s)∑​(yi​−c2​)⎦⎤​

对固定输入变量 jjj 可以找到最优切分点 sss.

c1^=ave(yi∣xi∈R1(j,s))和c2^=ave(yi∣xi∈R2(j,s))\hat{c_1} = ave(y_i|x_i∈ R_1(j,s))\quad和\quad\hat{c_2} = ave(y_i|x_i∈ R_2(j,s))c1​^​=ave(yi​∣xi​∈R1​(j,s))和c2​^​=ave(yi​∣xi​∈R2​(j,s))

遍历所有输入变量,找到最优的切分变量 jjj,构成一个对(j,s)(j,s)(j,s)。依此将输入空间划分为两个区域.接着,对每个区域重复上述划分过程,直到满足停止条件为止。这样就生成一棵回归树.。这样的回归树通常称为最小二乘回归树(least squaresregression tree),现将算法叙述如下:

5.2 CART分类树生成

分类树用 基尼指数选择最优特征,同时决定该特征的最优二值切分点。

定义5.4 (基尼指数)
分类问题中, 假设有KKK个类,样本点属于第 kkk 类的概率为PkP_kPk​,则概率分布的基尼指数定义为
Gini(p)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2Gini(p) = \sum_{k = 1}^Kp_k(1-p_k) = 1 - \sum_{k = 1}^Kp_k^2Gini(p)=k=1∑K​pk​(1−pk​)=1−k=1∑K​pk2​

对于二类分类问题,若样本点属于第1个类的概率是 ppp,则概率分布的基尼指数为

Gini(p)=2p(1−p)Gini(p) = 2p(1-p)Gini(p)=2p(1−p)

对于给定的样本集合D,其基尼指数为
Gini(D)=1−∑k−1K(∣Ck∣∣D∣)2Gini(D) = 1-\sum_{k - 1}^K\left(\frac{|C_k|}{|D|}\right)^2Gini(D)=1−k−1∑K​(∣D∣∣Ck​∣​)2

这里,CkC_kCk​ 是 DDD 中属于第 kkk 类的样本子集,KKK 是类的个数

如果样本集合 DDD 根据特征 AAA 是否取某一可能值 aaa 被分割成 D1D_1D1​和 D2D_2D2​两部分,即

D1={(x,y)∈D∣A(x)=a},D2=D−D1D1=\lbrace(x,y)∈D|A(x) = a\rbrace,D_2 = D-D_1D1={(x,y)∈D∣A(x)=a},D2​=D−D1​

则在特征 AAA 的条件下,集合 DDD 的基尼指数定义为

Gini(D,A)=∣D1∣∣D∣Gini(D1)+∣D2∣DGini(D2)Gini(D,A) = \frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{D}Gini(D_2)Gini(D,A)=∣D∣∣D1​∣​Gini(D1​)+D∣D2​∣​Gini(D2​)

基尼指数 Gini(D)Gini(D)Gini(D) 表示集合DDD的不确定性,基尼指数 Gini(D,A)Gini(D, A)Gini(D,A)表示经 A=aA= aA=a 分割后集合 D 的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。

图5.7显示二类分类问题中基尼指数 Gini(p)Gini(p)Gini(p)、熵(单位比特)之半 12H(P)\frac{1}{2}H(P)21​H(P) 和分类误差率的关系,横坐标表示概率 ppp,纵坐标表示损失。可以看出 基尼指数熵之半的曲线很接近,都可以近似地代表分类误差率.



5.3 例题:应用CART算法生成决策树

例:根据 表5.1 所给训练数据集,应用CART算法生成决策树.

推荐文章

  • 机器学习的基本概念和相关术语
  • 机器学习入门笔记(一):模型性能评价与选择
  • 机器学习入门笔记(二):线性模型
  • 机器学习入门笔记(三):K近邻算法
  • 机器学习入门笔记(四):朴素贝叶斯分类
  • 机器学习入门笔记(五):决策树
  • 机器学习入门笔记(六):集成学习
  • 机器学习入门笔记(七):聚类

参考资料

周志华老师的《机器学习》和李航老师的《统计学习方法》。

机器学习入门笔记(五):决策树相关推荐

  1. 机器学习入门笔记总目录

    机器学习入门笔记是我参考周志华老师的<机器学习>西瓜书.李杭老师的<统计学习方法>第二版以及课程教材等资料写的. 该目录主要记录关于机器学习和算法基本概念的博客链接. ---- ...

  2. 机器学习入门笔记(七):聚类

    文章目录 一.聚类的基本概念 1.1 相似度或距离 1.2 类或簇 1.3 类与类之间的距离 二.层次聚类 2.1 基本概念 2.1 算法描述 2.3 例题 三.K均值聚类 3.1 模型 3.2 策略 ...

  3. 机器学习入门笔记(四):朴素贝叶斯分类

    文章目录 一.朴素贝叶斯法 1.1 实现原理 1.2 后验概率最大化 二.朴素贝叶斯法的参数估计 2.1 极大似然估计 2.2 学习与分类算法 2.3 朴素贝叶斯分类器例题 2.4 贝叶斯估计 推荐文 ...

  4. 机器学习入门笔记(三):K近邻算法

    文章目录 一.K近邻算法的基本概念 1.1 K近邻算法实现 二.K近邻分类三要素 2.1 距离度量 2.2 K值的选择 2.2.1 基于m-fold cross validation的 K值选择 2. ...

  5. 机器学习入门笔记(二):线性模型

    文章目录 一.基本形式 二.线性回归 2.1 离散属性连续化 2.2 最小二乘法 2.3 多元线性回归 2.4 广义线性模型 三.对数几率回归(逻辑回归) 3.1 最大似然估计 四.线性判别分析(LD ...

  6. 机器学习入门笔记(一):模型性能评价与选择

    文章目录 一.训练误差与测试误差 1.1 基本概念 1.2 训练误差 1.3 泛化误差(测试误差) 1.4 过拟合 二.模型评估方法 2.1 留出法(hold-out) 2.2 正则化 2.3 交叉验 ...

  7. 机器学习入门 笔记(二) 机器学习基础概念

    第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...

  8. 机器学习入门笔记 人工智能 黑马程序员

    机器学习入门笔记 前言 这个是根据"黑马程序员"的一套机器学习课程编写的博客.这篇博客上的案例均为课程里面的,但并没有包含所有案例,只是记录了部分. B站视频地址 文章目录 机器学 ...

  9. 十年公务员转行IT,自学AI三年,他淬炼出746页机器学习入门笔记

    整理 | Jane 编辑 | Just 出品 | AI科技大本营(ID:rgznai100) 近期,梁劲传来该笔记重大更新的消息.<机器学习--从入门到放弃>这本笔记的更新没有停止,在基于 ...

最新文章

  1. tensorflow-yolov4实施方法
  2. 数字化在金融领域的应用与实践,从“我觉得”到“用户觉得”
  3. Qt Designer快速入门
  4. 属实逼真,决策树可视化!
  5. SharePoint开发 - Excel数据导入到SharePoint自定义列表(数据视图方式)
  6. vue插槽的使用(slot)
  7. Mac OS X Glut build instructions
  8. MySQL数据库修改用户登录密码的三种方式
  9. C#阻止计算机关闭显示器和待机
  10. HTML表div布局,html使用列表 以及div的布局和table的布局
  11. android canvas 画按钮,Android 用Canvas轻松绘制一个时钟
  12. php socket 小程序,实例详解微信小程序如何使用Socket
  13. 121 项目 008 笔记向 maven-study 常用插件
  14. mysql可以装到其他端口吗_linux下怎么在另一个端口安装高版本mysql
  15. Atitit 战略之道 attilax著
  16. 32.768KHz晶振DST310S成就时钟产业的无限可能
  17. ubuntu安装maya2011的方法
  18. 腾讯软件测试笔试题西安,腾讯软件测试笔试题题库
  19. t420i升级固态硬盘提升_老电脑想升级,如何选购最适合的固态硬盘
  20. 人物传记:Kyle Tedford:耐心与思考是优秀交易者的必备素质

热门文章

  1. Git是目前世界上最先进的分布式版本控制系统(没有之一)。
  2. UIPikerView的属性
  3. hdu 4005(边双连通)
  4. 【转】ASP.net MVC自定义错误处理页面的方法
  5. clean build 的区别(转)
  6. [Luogu P2387] [NOI2014]魔法森林 (LCT维护边权)
  7. 同一个IP段ping不通同事的电脑
  8. 第一篇 多线程笔试面试题汇总(转)
  9. react-router-dom v4
  10. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]