决策树

决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程,可以认为是if-then的规则集合,也可以认为是定义在特征空间和类空间上的条件概率分布。其优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则构建决策树模型。决策树学习一般包括3个步骤:特征选择、决策树的生成和决策树的剪枝。

1 决策树模型与学习

决策树由有向边(directed edge)和节点(node)组成,节点有两种类型:内部节点(internal node)和叶子节点(leaf node)。内部节点表示一个属性或特征,叶子节点表示一个类。
决策树转化为if-then规则的过程:由树的根节点到叶子节点的每一条路径构建一条规则,路径上内部节点的特征对应着规则的条件,而叶节点的类对应着规则的结论。规则具有:互斥且完备的特征。即每一个实例(instance)都有且只有被一条规则所覆盖。

1.1 决策树学习

决策树学习本质是从训练数据集中归纳出一组分类规则,也可以认为是由训练数据集估计条件概率模型。能对训练数据集进行正确分类的树可能有多个,也可能一个也没有。我们需要选择的条件概率模型不仅对训练数据有很好的拟合,而且对未知数据也有很好的预测。
决策树学习用损失函数表示学习目标,学习策略是以损失函数为目标函数的最小化。
决策树学习算法通常是递归的选择最优特征,并根据这一特征对训练数据进行分割,使得对各个子数据集有一个局部最优的分类过程。以上方法生成的决策树可能对训练数据有很好的分类能力,但可能会发生过拟合现象。需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使他具有更好的泛化能力。即去掉过于细分的叶节点,使其退回到父节点,甚至更高的结点,然后将父节点或更高的结点改为新的叶节点。
决策树表示为一个条件概率分布,其生成对应于模型的局部选择,剪枝对应于模型的全局选择。决策树的生成只考虑局部最优,相对的,决策树的剪枝考虑全局最优。

2 特征选择

特征选择的准则是信息增益(Information gain)和信息增益比(gain ratio)。

2.1 信息增益

熵(entropy)表示随机变量不确定性的度量。设X是一个有限取值的离散随机变量,概率分布为
P(X=xi)=Pi, i=1,2,3…n
则随机变量X的熵定义为
H(X)=-∑pi*㏒(pi)
对数以2为底时,熵的单位为bit。
设有随机变量(X,Y),其联合概率分布为
P(X=xi,Y=yj)=pij, i=1,2,…n; j=1,2,…m
条件熵H(Y|X)表示已知随机变量X下Y的不确定性,定义为给定X的条件下Y的条件概率分布的熵对X的数学期望
H(Y|X)=∑pi*H(Y|X=xi)        pi=P(X=xi), i=1,2,...n
信息增益表示得知特征X的信息而使得类Y的信息不确定度减少的程度。
特征A对训练集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的条件经验熵H(D|A)之差
g(D,A)=H(D)-H(D|A)
根据信息增益准则的特征选择方法采用贪心策略:对训练集D(或其子集),计算其每个特征的信息增益,选择信息增益值最大的特征作为分离属性。

2.2 信息增益比

以信息增益作为特征,存在偏向于取值较多的特征。使用信息增益率可以校正。Ha(D)表示训练集D关于特征a的熵,以a的取值作为熵的计算标准。
gr(D,A)=G(D,A)/Ha(D)

3 决策树的生成

3.1 ID3算法

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

ID3算法:

输入:训练数据集D,特征集A,阈值ε

输出:决策树T

(1)若D中所有实例属于同一类Ck,则T为单节点树,并将Ck作为该节点的类标记,返回T;

(2)若A=∅,则T为单节点树,并将D中实例树最大的类Ck作为该节点的类标记,返回T;

(3)否则,计算A中各特征对D的信息增益,选择最大的特征Ag;

(4)如果Ag的信息增益小于阈值ε,则置T为单节点树,并将D中实例树最大的类Ck作为标记,返回T;

(5)否则,对Ag的每一个可能值ai,依Ag=ai将D分为若干非空子集Di,并将Di中实例最大的类作为标记,构建子节点,由节点及其子节点构成树T,返回T;

(6)对第i个节点,以Di为训练集,以A-{Ag}为特征集,递归调用步(1)~(5),得到子树Ti,返回Ti。


3.2 C4.5的生成算法

ID3算法只有树的生成,所以该算法生成的树容易过拟合。C4.5算法对ID3算法相似,但对其进行了改进,C4.5在生成过程中使用信息增益比来选择特征,具体算法步骤同ID3算法。

4. 决策树的剪枝

决策树生成算法递归生成决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据分类却没有那么准确,过拟合的原因在于学习时过多的考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树。解决方法是考虑决策树的复杂度,对已生成的树进行简化。
简化过程称为剪枝(pruning),具体的,剪枝从已生成的树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶节点,从而简化分类树模型。

决策树的剪枝往往通过通过极小化整体的损失函数(loss function)来实现。设树的叶节点个数为|T|,t是树T的叶节点,该叶节点上有Nt个样本,其中k类的样本点有Ntk个,k=1,2,…K,Ht(T)为叶节点t上的经验熵,α>=0为参数,则决策树的损失函数可以定义为








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值