决策树的ID3算法

导读:
1.概念
2.信息熵,条件熵和信息增益
3.算法过程
4.损失函数
5.缺点

一.概念

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法,一种非参数的有监督的学习方法.

在决策数执行的过程中,通常包含三个步骤:特征选择、决策树的生成(自上而下的递归分治法)、决策树的修剪( 剪去那些可能增大错误预测率的分枝).

二.信息熵,条件熵和信息增益

熵的概念来源于信息论,度量了事物的不确定性,越是不确定的事物,它的熵就越大.
1.信息熵:

I ( U ) = l o g ( 1 p ) = − l o g ( p ) I(U)=log(\frac1p)=−log(p) I(U)=log(p1)=log(p)
  其中I被称为不确定性函数,代表事件的信息量.log表示取对数。假定对于一个信源,其发生各种事件是相互独立的,并且其值具有可加性.因此使用log函数.可见,发生的概率越大,其不确定性越低.
  考虑到信息源的所有可能发生的事件,假设其概率为p1,p2,…,pi,则可以计算其平均值(数学期望),该值被称为信息熵或者经验熵。涵义即为:一个信源的平均不确定性,或者一个信源的不确定性期望。用公式表示为:

H ( X ) = E n t ( D ) = − ∑ i = 0 N p i l o g p i H(X)=Ent(D) = − \sum_{i=0}^{N}pilogpi H(X)=Ent(D)=i=0Npilogpi
信息熵越小,代表事件越确定,换到决策树中可以表示某类样本所占总样本数的比例很大.

2.条件熵:
在X发生的情况下,Y的熵称为条件熵H(Y|X),有公式:

H ( Y ∣ X ) = H ( X , Y ) − H ( X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=H(X,Y)−H(X)=\sum_{i=1}^{n} p_{i}H(Y|X=x_{i}) H(YX)=H(X,Y)H(X)=i=1npiH(YX=xi)
上述公式表示:(X,Y)发生所包含的熵(它是个并集),减去X的熵,即为Y发生“新”增的熵.

3.信息增益
假定数据集D中离散属性a有V个可能的取值,若使用a对数据进行划分,则会产生v个分支节点,其中第V个分支节点包含了D中所有在属性a上取值为av的样本,记为Dv,可以用属性a对样本集D进行划分所得的信息增益 (information gain)

G a i n ( D , α ) = E n t ( D ) − ∑ i = 1 v D v D E n t ( D v ) Gain(D,\alpha) = Ent(D)-\sum_{i=1}^{v} \frac {D^{v}} {D} Ent(D^{v}) Gain(D,α)=Ent(D)i=1vDDvEnt(Dv)

在选择最优特征时,很容易倾向于选择“特征值种类较多”的特征,作为分类特征。我们举个极端点的例子,假设有100个样本集,现在有一个特征其数值种类也是100,如果按该特征分类,就能把这个样本集分成100份,每份一个样本。在用ID3算法做决策树时,肯定会选择这个特征作为第一个最优特征,因为这个特征分出来的样本集每一个纯度都是最高。

三.算法过程

算法过程:
1.初始化信息增益的阈值e,
2.判断样本是否为同一类输出Di,如果是则返回单节点树T。标记类别为Di
3.判断特征是否为空,如果是则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别。
4.计算A中的各个特征(一共n个)对输出D的信息增益,选择信息增益最大的特征Ag
5. 如果Ag的信息增益小于阈值e,则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别。
6.否则,按特征Ag的不同取值Agi将对应的样本输出D分成不同的类别Di。每个类别产生一个子节点。对应特征值为Agi。
7.对于所有的子节点,令D=Di,A=A-{Ag}递归调用2-6步,得到子树Ti并返回。

四.损失函数

假定样本的总类别为K个,对于决策树的某叶结点,假定该叶结点含有样本数目为n,其中第k类的样本数目为nk,k=1,2,…,K。
(1)若该结点中某类样本nj=n,而n1,…nj−1,nj+1,…nK=0,则该结点的熵Hp=0,最小;
(2)若该结点中各类样本数目n1=n2=…=nk=n/K,则该结点熵Hu=lnK,最大。
对所有叶结点的熵求和,该值越小说明对样本的分类越精确。各个叶结点包含的样本数目不同,可以使用样本数加权求熵和。因此,评价函数
C ( T ) = ∑ t ∈ l e a f N t ⋅ H ( t ) C(T)=\sum_{t∈leaf}N_{t}⋅H(t) C(T)=tleafNtH(t)

该评价函数值越小越好,所以,可以称为**“损失函数”**。

五.ID3的缺点:

1.ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。这大大限制了ID3的用途。
2.ID3采用信息增益大的特征优先建立决策树的节点。在相同条件下,取值比较多的特征比取值少的特征信息增益大。比如一个变量有2个值,各为1/2,另一个变量为3个值,各为1/3,其实他们都是完全不确定的变量,但是取3个值的比取2个值的信息增益大,考虑一个极端情况,某个属性(特征)的取值很多,以至于每一个取值对应的类别只有一个。这样根据 H ( D ) − H ( D ∣ A ) H(D)−H(D|A) H(D)H(DA),可以得知后面的那一项的值为0。这样得到信息增益会很大。
3.1D3算法对于缺失值的情况没有做考虑:
4.没有考虑过拟合的问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值