第五章 决策树——学习笔记

(一)决策树模型与学习

在这里插入图片描述

(二)特征选择

熵(entropy) H ( x ) = H ( p ) = − ∑ n j = 1 p i l o g p i H(x)=H(p)=- \underset {j=1}{\overset n {\sum}}p_ilogp_i H(x)=H(p)=j=1npilogpi对数底为2单位是比特(bit),自然对数单位为纳特(nat)。

条件熵(conditional entropy) H ( Y ∣ X ) = ∑ n j = 1 p i H ( Y ∣ X = x i ) H(Y|X)=\underset {j=1}{\overset n {\sum}}p_iH(Y|X=x_i) H(YX)=j=1npiH(YX=xi)其中 p i = P ( X = x i ) , i = 1 , 2 , . . . , n p_i=P(X=x_i),i=1,2,...,n pi=P(X=xi)i=1,2,...,n

信息增益(information gain):得知特征 X X X的信息而使得类 Y Y Y的信息的不确定性减少的程度。 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)经验熵 H ( D ) H(D) H(D)表示对数据集 D D D分类的不准确性,经验条件熵 H ( D ∣ A ) H(D|A) H(DA)表示在特征 A A A给定的条件下对数据集 D D D分类的不准确性。因此,信息增益大意味着更好的分类能力。

 一般的,熵 H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(YX)的差称为互信息(mutual information)。在决策树中,信息增益与互信息二者等价。

算法(信息增益)
 输入:训练数据集 D D D和特征 A A A;
 输出:特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)
 (1)计算数据集 D D D的经验熵: H ( D ) = − ∑ K k = 1 ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ H(D)=-\underset {k=1}{\overset K {\sum}}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} H(D)=k=1KDCklog2DCk
 (2)特征 A A A对训练数据集 D D D的经验条件熵: H ( D ∣ A ) = ∑ n i = 1 ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ n n = 1 ∣ D i ∣ ∣ D ∣ ∑ K k = 1 ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ H(D|A)=\underset {i=1}{\overset n {\sum}}\frac{|D_i|}{|D|}H(D_i)=-\underset {n=1}{\overset n {\sum}}\frac{|D_i|}{|D|}\underset {k=1}{\overset K {\sum}}\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|} H(DA)=i=1nDDiH(Di)=n=1nDDik=1KDiDiklog2DiDik
 (3)计算信息增益: g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
:贷款申请样本数据集如下,根据信息增益准则选择最优特征。

ID年龄有工作有自己的房子信贷情况类别
1青年一般
2青年
3青年
4青年一般
5青年一般
6中年一般
7中年
8中年
9中年非常好
10中年非常好
11老年非常好
12老年
13老年
14老年非常好
15老年一般


 Step1:计算经验熵,类别分为两类,有 H ( D ) = − 9 15 l o g 2 9 15 − 6 15 l o g 2 6 15 = 0.971 H(D)=-\frac{9}{15}log_2\frac{9}{15}-\frac{6}{15}log_2\frac{6}{15}=0.971 H(D)=159log2159156log2156=0.971
 Step2:计算每个特征对数据集的增益
  (1)年龄 青年: H ( D 1 ) = − 2 5 l o g 2 2 5 − 3 5 l o g 2 3 5 青年:H(D_1)=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} 青年:H(D1)=52log25253log253 中年: H ( D 2 ) = − 3 5 l o g 2 3 5 − 2 5 l o g 2 2 5 中年:H(D_2)=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} 中年:H(D2)=53log25352log252 老年: H ( D 3 ) = − 4 5 l o g 2 4 5 − 1 5 l o g 2 1 5 老年:H(D_3)=-\frac{4}{5}log_2\frac{4}{5}-\frac{1}{5}log_2\frac{1}{5} 老年:H(D3)=54log25451log251 g ( D , A 1 ) = H ( D ) − 5 15 H ( D 1 ) − 5 15 H ( D 2 ) − 5 15 H ( D 3 ) = 0.971 − 0.888 = 0.083 g(D,A_1)=H(D)-\frac{5}{15}H(D_1)-\frac{5}{15}H(D_2)-\frac{5}{15}H(D_3)=0 .971-0.888=0.083 g(D,A1)=H(D)155H(D1)155H(D2)155H(D3)=0.9710.888=0.083
  (2)工作 有工作: H ( D 1 ) = − 5 5 l o g 2 5 5 − 0 5 l o g 2 0 5 有工作:H(D_1)=-\frac{5}{5}log_2\frac{5}{5}-\frac{0}{5}log_2\frac{0}{5} 有工作:H(D1)=55log25550log250 没工作: H ( D 2 ) = − 4 10 l o g 2 4 10 − 6 10 l o g 2 6 10 没工作:H(D_2)=-\frac{4}{10}log_2\frac{4}{10}-\frac{6}{10}log_2\frac{6}{10} 没工作:H(D2)=104log2104106log2106 g ( D , A 2 ) = H ( D ) − 5 15 H ( D 1 ) − 10 15 H ( D 2 ) = 0.324 g(D,A_2)=H(D)-\frac{5}{15}H(D_1)-\frac{10}{15}H(D_2)=0.324 g(D,A2)=H(D)155H(D1)1510H(D2)=0.324
  (3)房子 g ( D , A 3 ) = 0.420 g(D,A_3)=0.420 g(D,A3)=0.420
  (4)信贷 g ( D , A 4 ) = 0.363 g(D,A_4)=0.363 g(D,A4)=0.363
 对比四个特征,发现房子的信息增益最大。
信息增益比(information gain ratio):信息增益存在偏向于选择取值较多的特征的问题,故有信息增益比 g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)

(三)决策树的生成

1. ID3算法

 在各个节点上应用信息增益准则选择特征,迭代至结束。

2. C4.5算法

 在各个节点上应用信息增益比选择特征,迭代至结束。

(四)决策树的剪枝

 为提升泛化能力裁剪掉一些子树和节点。示意图如下:在这里插入图片描述

 设树 T T T的叶结点个数为 ∣ T ∣ |T| T t t t是树 T T T的叶结点,该叶结点有 N t N_t Nt个样本点,其中 k k k类的样本点有 N t k N_{tk} Ntk个, k = 1 , 2 , . . . , K , H t ( T ) k=1,2,...,K,H_t(T) k=1,2,...,KHt(T)为叶结点 t t t上的经验熵, α ≥ 0 \alpha\geq0 α0为参数,则决策树学习的损失函数可定义为 C α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ C_{\alpha}(T)=\overset {|T|} {\underset{t=1} \sum}N_tH_t(T)+\alpha |T| Cα(T)=t=1TNtHt(T)+αT = C ( T ) + α ∣ T ∣ =C(T)+\alpha|T| =C(T)+αT其中经验熵为 H t ( T ) = − ∑ k N t k N t l o g N t k N t H_t(T)=-\underset {k} {\sum} \frac{N_{tk}}{N_t}log\frac{N_{tk}}{N_t} Ht(T)=kNtNtklogNtNtk那么, C ( T ) , ∣ T ∣ C(T),|T| C(T)T就分别表示训练误差与模型复杂度。

(五)CART算法

 CART算法=决策树生成+决策树剪枝

1. CART生成

1.1. 回归树的生成

算法(最小二乘回归树生成算法)
 输入:训练集数据 D D D
 输出:回归树 f ( X ) f(X) f(X)
 在输入空间中递归地将每个区域二分:
 (1)选择最优切分变量 j j j与切分点 s s s,求解 m i n j , s [ m i n c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \underset{j,s} {min}[\underset{c_1}{min}\underset{x_i\in R_1(j,s)}{\sum}(y_i-c_1)^2+\underset{c_2}{min}\underset{x_i\in R_2(j,s)}{\sum}(y_i-c_2)^2] j,smin[c1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2]
 (2)用选定的对 ( j , s ) (j,s) (j,s)划分区域并决定相应的输出值 R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } , R 2 ( j , s ) = { x ∣ x ( j ) > s } R_1(j,s)=\{x|x^{(j)}\leq s\},R_2(j,s)=\{x|x^{(j)}> s\} R1(j,s)={xx(j)s}R2(j,s)={xx(j)>s} c ^ m = 1 N m ∑ x i ∈ R m ( j , s ) y i , x ∈ R m , m = 1 , 2 \hat c_m=\frac 1 {N_m}\underset{x_i\in R_m(j,s)}{\sum}y_i,x\in R_m,m=1,2 c^m=Nm1xiRm(j,s)yixRmm=1,2
 (3)反复调用(1)(2)至满足条件
 (4)将空间划分为 M M M个区域 R 1 , R 2 , . . . , R M R_1,R_2,...,R_M R1,R2,...,RM,生成决策树 f ( x ) = ∑ m = 1 M c ^ m I ( x ∈ R m ) f(x)=\overset {M}{\underset{m=1}{\sum}}\hat c_mI(x\in R_m) f(x)=m=1Mc^mI(xRm)

1.2. 分类树的生成

 分类树采用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
定义(基尼指数)
 分类问题中,假设有 K K K类,样本属于第 k k k类的概率为 p k p_k pk,则概率分布的基尼指数定义为 G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\overset {K}{\underset{k=1}{\sum}}p_k(1-p_k)=1-\overset {K}{\underset{k=1}{\sum}}p_k^2 Gini(p)=k=1Kpk(1pk)=1k=1Kpk2 对于二分类问题,有 G i n i ( p ) = 2 p ( 1 − p ) Gini(p)=2p(1-p) Gini(p)=2p(1p) 对于给定样品集 D D D其基尼指数为 G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\overset {K}{\underset{k=1}{\sum}}(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2这里 C k C_k Ck D D D中属于第 k k k类的样本子集, K K K是类的个数。
 若 D D D根据特征 A A A取某一可能值 a a a被分割成 D 1 , D 2 D_1,D_2 D1D2两部分,则在特征 A A A的条件下,集合 D D D的基尼指数定义为 G i n i ( D , A ) = D 1 D G i n i ( D 1 ) + D 2 D G i n i ( D 2 ) Gini(D,A)=\frac{D_1}{D}Gini(D_1)+\frac{D_2}{D}Gini(D_2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2) 基尼指数 G i n i ( D ) Gini(D) Gini(D)表示集合 D D D的不确定性; G i n i ( D , A ) Gini(D,A) Gini(D,A)表示经 A = a A=a A=a分割后集合 D D D的不确定性。
:如上样本表,应用CART算法生成决策树。
:(1)年龄 G i n i ( D ∣ A 1 = 青年 ) = 5 15 ( 2 × 2 5 × 3 5 ) + 10 15 ( 2 × 7 10 × 3 10 ) = 0.44 Gini(D|A_1=青年)=\frac{5}{15}(2\times \frac{2}{5}\times \frac{3}{5})+\frac{10}{15}(2\times \frac{7}{10}\times \frac{3}{10})=0.44 Gini(DA1=青年)=155(2×52×53)+1510(2×107×103)=0.44 G i n i ( D ∣ A 1 = 中年 ) = 0.48 Gini(D|A_1=中年)=0.48 Gini(DA1=中年)=0.48 G i n i ( D ∣ A 1 = 老年 ) = 0.44 Gini(D|A_1=老年)=0.44 Gini(DA1=老年)=0.44
   (2)工作 G i n i ( D ∣ A 2 = 1 ) = 0.32 Gini(D|A_2=1)=0.32 Gini(DA2=1)=0.32
   (3)房子 G i n i ( D ∣ A 3 = 1 ) = 0.27 Gini(D|A_3=1)=0.27 Gini(DA3=1)=0.27
   (4)信贷 G i n i ( D ∣ A 4 = 1 ) = 0.36 Gini(D|A_4=1)=0.36 Gini(DA4=1)=0.36 G i n i ( D ∣ A 4 = 2 ) = 0.47 Gini(D|A_4=2)=0.47 Gini(DA4=2)=0.47 G i n i ( D ∣ A 4 = 3 ) = 0.32 Gini(D|A_4=3)=0.32 Gini(DA4=3)=0.32可知, A 3 A_3 A3为最优特征,依此类推。

2. CART剪枝

 1. 剪枝,形成子树序列
 2. 在子树序列中通过交叉验证选取最优子树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值