统计学习方法笔记(九)决策树

决策树

适用于分类问题,建立模型通常需要三个步骤:特征选择,决策树的生成和决策树的修建

模型的建立

1、 决策树的形式:一种对实例进行分类的树形结构,由结点和有向边组成,结点有两种形式,一种是内部结点,代表一个特征或属性,另一种是叶节点,代表一个类。示例如下:
这里写图片描述
2、 分类过程:从根节点开始,通过其属性判断属于哪一个子结点,直至最终到达叶结点,分类完成。
3、 决策树的特性:
1) if-then规则:互斥且完备
2) 可以表示为给定特征条件下类的条件概率分布。将特征空间空间划分为互不相交的单元,这样,在每个单元定义一个类的概率分布就构成了一个条件概率分布,每一个单元对应决策树的一条路径。取一个单元,这个单元表示特征的随机变量在哪个类下的条件概率最大,便属于哪个类。
4、 决策树的学习:
决策树学习的本质是从训练数据集归纳出一组分类的规则,不仅与训练数据的矛盾较小,而且还具有良好的泛化能力(即预测能力)。决策树学习的损失函数通常采用正则化的极大似然函数,采用启发式方法近似求解这一最优化问题。决策树学习的算法通常是递归的选择最优特征,并根据该特征对训练数据进行分割。在生成决策树后为了防止过拟合的出现,通常需要对决策树进行修剪,去掉过于细分的节点。决策树的生成只考虑局部最优,决策树的剪枝代表全局最优。决策树学习的常用算法有ID3、C4.5、CART

特征选择

特征选择的准则是信息增益或信息增益比。
1. 信息增益
定义:
熵:随机变量不确定性的度量,有概率分布 P(X=xi)=pi,i=1,2,,n P ( X = x i ) = p i , i = 1 , 2 , ⋯ , n ,则熵的定义为 H(X)=i=1npilogpi H ( X ) = − ∑ i = 1 n p i log ⁡ p i ,通常,如果以2为底,则称熵的单位为比特,如果以e为底,则称单位为纳特。熵越大,则不确定性越大
条件熵: H(Y|X)=i=1npilogH(Y|X=xi) H ( Y | X ) = ∑ i = 1 n p i log ⁡ H ( Y | X = x i )
当熵与条件熵中的概率是由数据估计得到时,所对应的熵称为经验熵与条件经验熵。
信息增益:得知特征X的信息而使得类Y的信息的不确定性减少的程度
特征A对训练数据集D的信息增益定义为:
g(D,A)=H(D)H(D|A) g ( D , A ) = H ( D ) − H ( D | A )
2. 信息增益比
定义为信息增益与训练数据集的经验熵之比:
gR(D,A)=g(D,A)H(D) g R ( D , A ) = g ( D , A ) H ( D )

决策树的生成

  1. ID3算法:
    1)若D中所有实例同属于一类,则为单节点树,返回决策树
    2)若特征为空,则说明为单节点树,返回决策树
    3)否则,则计算特征集A中各特征对训练集D的信息增益,选择信息增益最大的特征 Ag A g
    4)如果 Ag A g 信息增益小于阈值,则输出单节点树,如果大于阈值,则按 Ag A g 取值构建子节点
    5)重复这个过程
  2. C4.5生成算法:与ID3算法相似,只不过用信息增益比来选择特征

决策树的剪枝

决策树生成之后,对训练集的分类很准确,但如果用来对测试数据进行分类,则差强人意,归根结底,是模型过于复杂,所以需要对决策树进行剪枝来提高模型的泛化能力。
这个过程是通过极小化决策树的代价函数来实现的,其代价函数定义如下:
Cα(T)=t=1|T|NtHt(T)+α|T| C α ( T ) = ∑ t = 1 | T | N t H t ( T ) + α | T |
其中,经验熵记为: Ht(T)=kNtkNtlogNtkNt H t ( T ) = − ∑ k N t k N t log ⁡ N t k N t
记: C(T)=|T|NtHt(T)=t=1|T|k=1KNtklogNtkNt C ( T ) = ∑ | T | N t H t ( T ) = − ∑ t = 1 | T | ∑ k = 1 K N t k log ⁡ N t k N t
则有: Cα(T)=C(T)+α|T| C α ( T ) = C ( T ) + α | T |
决策树的剪枝:
1)计算每个结点的经验熵
2)递归的从树的叶结点向上回缩,如果回缩之后的损失函数小于回缩之前的,则进行剪枝。

CART算法

既可以用于分类,也可以用于回归
一、回归树的生成
一个回归树对应着输入空间的划分以及在划分单元的输出值,假设已经将输入空间划分完毕,每个单元的输出值记为 cm c m ,则可以将回归树模型记为:
f(x)=m=1McmI(xRm) f ( x ) = ∑ m = 1 M c m I ( x ∈ R m )
模型误差采用平方误差的形式,单元的输出最优值如下:
cˆm=ave(yi|xiRm) c ^ m = a v e ( y i | x i ∈ R m )
关键是怎样进行空间的划分,这里采用启发式的方法,选择第j个变量以及其取值s作为切分量以及切分点,并定义两个区域: R1(j,s)={x|x(j)s} R 1 ( j , s ) = { x | x ( j ) ≤ s } R2(j,s)={x|x(j)>s} R 2 ( j , s ) = { x | x ( j ) > s }
寻找最优切分量与最优切分点:
minj,s[minc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2] min j , s ⁡ [ min c 1 ⁡ ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min c 2 ⁡ ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ]
最佳切分点找到后则 cˆm c ^ m 可求。
二、 分类树的生成
基尼指数的定义:
Gini(p)=k=1Kpk(1pk)=1k=1Kp2k G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2
对于给定的样本D,其基尼指数为:
1k=1Kp2k 1 − ∑ k = 1 K p k 2
在特征A的条件下,D的基尼指数定义为:
Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2) G i n i ( D , A ) = | D 1 | | D | G i n i ( D 1 ) + | D 2 | | D | G i n i ( D 2 )
此时,基尼指数与经验熵相似,代表了集合的不确定度,故可以选择基尼指数小的来作为切分的特征进行决策树的生成。
三、 CART的剪枝

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值