导读:
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=0∑Npilogpi
信息熵越小,代表事件越确定,换到决策树中可以表示某类样本所占总样本数的比例很大.
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(Y∣X)=H(X,Y)−H(X)=i=1∑npiH(Y∣X=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=1∑vDDvEnt(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)=t∈leaf∑Nt⋅H(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(D∣A),可以得知后面的那一项的值为0。这样得到信息增益会很大。
3.1D3算法对于缺失值的情况没有做考虑:
4.没有考虑过拟合的问题