文章目录
决策树
决策树是一种基本的分类与回归方法,其主要优点是模型具有可读性,分类速度快,利用训练数据,根据损失函数最小化的原则建立决策树模型。
决策树学习包括三个步骤:特征选择、决策树的生成和决策树的剪枝。
决策树模型与学习
决策树模型
用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。
决策树与if-then规则
可以将决策树看成一个if-then规则的集合。决策树的路径或其对应的if-then规则集合都具有一个重要的性质:互斥且完备。每一个实例都被一条路径或一条规则所覆盖,而且只被一条规则所覆盖。
决策树与条件概率分布
决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义特征空间的一个划分上。将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的一条路径对应于划分中的一个单元。
决策树学习
决策树学习的目标是根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。
决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的决策树可能有多个,也可能一个也没有。我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。
决策树学习的损失函数通常是正则化的极大似然函数。决策树学习的策略是以损失函数为目标函数的最小化。
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
递归地选择最优特征可能对训练数据有很好的分类能力,但对未知的测试数据却未必有很好的分类能力,极可能发生过拟合现象。故需要对生成的树进行剪枝,将树变得更简单,从而使它具有更好的泛化能力。
如果特征数量很多,可以在学习开始的时候对特征进行选择,只留下对训练数据有足够分类能力的特征。
决策树学习算法包括特征选择,决策树生成与决策树的剪枝过程。决策树表示一个条件概率分布,深浅不同的决策树对应着不同复杂度的概率模型。决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。
特征选择
特征选择在于选取对训练数据具有分类能力的特征。
信息增益
自信息
有一个假设,一个离散的随机变量 x x x,信息的量度应该依赖于概率分布 p ( x ) p(x) p(x)。
如果假设有一个函数 I ( x ) I(x) I(x)是信息量,根据信息的性质应有以下关系:
- 有两个不相关的事件
x
,
y
x,y
x,y,那么观察两个事件同时发生时获得的信息量应该等于观察到事件各自发生时获得的信息之和,即:
I ( x , y ) = I ( x ) + I ( y ) I(x,y)=I(x)+I(y) I(x,y)=I(x)+I(y)
2.因为两个事件是独立不相关的,因此:
p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)
由以上两个关系可以假设 p ( x ) p(x) p(x)与 I ( x ) I(x) I(x)一定是对数关系,这是因为对数将乘法转换为加法的运算法则。
由此可得到
p
(
x
)
p(x)
p(x)与
I
(
x
)
I(x)
I(x)关系:
I
(
x
)
=
−
log
p
(
x
)
I(x)=-\log p(x)
I(x)=−logp(x)
其中负号是用来保证信息量是正数或者零。
log
\log
log函数的基的选择为2或e时,信息的单位为分别为bit或nat。
I ( x ) I(x) I(x)为随机变量 x x x的自信息,描述的是随机变量的某个事件发生所带来的信息量。
熵
在信息论与概率统计中,熵是表示随机变量不确定性的度量。设
X
X
X是一个取有限个值的离散随机变量,其概率分布为:
P
(
X
=
x
i
)
=
p
i
,
i
=
1
,
2
,
⋯
,
n
P(X=x_{i})=p_{i},\quad i=1,2,\cdots,n
P(X=xi)=pi,i=1,2,⋯,n
假设是在传送信息的过程当中,则传输的平均信息量可以通过求
I
(
x
)
=
−
log
p
(
x
)
I(x)=-\log p(x)
I(x)=−logp(x)关于概率分布
p
(
x
)
p(x)
p(x)的期望得到,即:
H
(
X
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(X)=-\sum_{i=1}^{n}p_{i}\log p_{i}
H(X)=−i=1∑npilogpi
H
(
X
)
H(X)
H(X) 就是随机变量的熵,它是表示随机变量不确定性的度量,是对所有可能发生的事件产生的信息量的期望。
从公式可得,随机变量的取值个数越多,状态数也就越多,信息熵就越大,混乱程度就越大。当随机分布为均匀分布时,熵最大。
熵只依赖于
X
X
X的分布,而与X的取值无关,所以可将
X
X
X的熵记作
H
(
p
)
H(p)
H(p):
H
(
p
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(p)=-\sum_{i=1}^{n}p_{i}\log p_{i}
H(p)=−i=1∑npilogpi
例如当
X
X
X的分布服从伯努利分布时,熵
H
(
p
)
H(p)
H(p)随概率
p
p
p变化的曲线如下:
当
p
=
0
p=0
p=0或
p
=
1
p=1
p=1时
H
(
p
)
=
0
H(p)=0
H(p)=0,随机变量完全没有不确定性。当
p
=
0.5
p=0.5
p=0.5时,
H
(
p
)
=
1
H(p)=1
H(p)=1,熵取值最大,随机变量不确定性最大。
条件熵
设有随机变量
(
X
,
Y
)
(X,Y)
(X,Y),其联合概率分布为:
P
(
X
=
x
i
,
Y
=
y
j
)
=
p
i
j
,
i
=
1
,
2
,
⋯
,
n
;
j
=
1
,
2
,
⋯
,
m
P(X=x_{i},Y=y_{j})=p_{ij},\quad i=1,2,\cdots,n;j=1,2,\cdots,m
P(X=xi,Y=yj)=pij,i=1,2,⋯,n;j=1,2,⋯,m
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示在已知随机变量
X
X
X的条件下随机变量
Y
Y
Y的不确定性。随机变量
X
X
X给定的条件下随机变量
Y
Y
Y的条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X),定义为
X
X
X给定条件下
Y
Y
Y的条件概率分布的熵对
X
X
X的数学期望
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum_{i=1}^{n}p_{i}H(Y|X=x_{i})
H(Y∣X)=i=1∑npiH(Y∣X=xi)
这里,
p
i
=
x
i
,
i
=
1
,
2
,
⋯
,
n
p_{i}=x_{i},i=1,2,\cdots,n
pi=xi,i=1,2,⋯,n。
信息增益
信息增益不仅能说明两个随机变量之间是否有关系,也能反应他们之间关系的强弱。
信息熵是代表随机变量的不确定性(复杂度),条件熵代表在某一个条件下,随机变量的不确定性(复杂度)。信息增益恰好是:信息熵-条件熵。信息增益代表了在一个条件下,信息不确定性(复杂度)减少的程度。
特征
A
A
A对训练数据集
D
D
D的信息增益
g
(
D
,
A
)
g(D,A)
g(D,A),定义为集合
D
D
D的经验熵
H
(
D
)
H(D)
H(D)与特征
A
A
A给定条件下
D
D
D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)之差,即:
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D, A) = H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
一般地,熵
H
(
X
)
H(X)
H(X)与条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)之差称为互信息。
决策树学习应用信息增益准则选取特征。这里信息增益就表示由于特征 A A A而使得对数据集 D D D的分类的不确定性减少的程度。信息增益依赖于特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选择方法是:对训练数据集,计算其每个特征的信息增益,并比较他们的大小,选择信息增益大的特征。
信息增益比
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比可以对该问题进行校正。
特征
A
A
A对训练数据集
D
D
D的信息增益比
g
R
(
D
,
A
)
g_{R}(D,A)
gR(D,A)定义为其信息增益
g
(
D
,
A
)
g(D,A)
g(D,A)与训练数据集
D
D
D关于特征
A
A
A的值的熵
H
A
(
D
)
H_{A}(D)
HA(D)之比,即:
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)
决策树的生成
ID3算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。
ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。
C4.5的生成算法
C4.5算法与ID3算法相似,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
k=1,2,\cdots,K
k=1,2,⋯,K,
H
t
(
T
)
H_{t}(T)
Ht(T)为叶结点
t
t
t上的经验熵,
α
≥
0
\alpha\geq 0
α≥0为参数,则决策树学习的损失函数可以定义为:
C
a
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
+
α
∣
T
∣
C_{a}(T)=\sum_{t=1}^{|T|}N_{t}H_{t}(T)+\alpha |T|
Ca(T)=t=1∑∣T∣NtHt(T)+α∣T∣
其中经验熵为
H
t
(
T
)
=
−
∑
k
N
t
k
N
t
log
N
t
k
N
t
H_{t}(T)=-\sum_{k}\frac{N_{tk}}{N_{t}}\log\frac{N_{tk}}{N_{t}}
Ht(T)=−k∑NtNtklogNtNtk
在损失函数中,将右端第一项记作
C
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
=
−
∑
t
=
1
∣
T
∣
∑
k
=
1
K
N
t
k
log
N
t
k
N
t
C(T)=\sum_{t=1}^{|T|}N_{t}H_{t}(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}\log\frac{N_{tk}}{N_{t}}
C(T)=t=1∑∣T∣NtHt(T)=−t=1∑∣T∣k=1∑KNtklogNtNtk
这时有
C
a
(
T
)
=
C
(
T
)
+
α
∣
T
∣
C_{a}(T)=C(T)+\alpha|T|
Ca(T)=C(T)+α∣T∣
C
(
T
)
C(T)
C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,
∣
T
∣
|T|
∣T∣表示模型复杂度,参数
α
≥
0
\alpha\geq 0
α≥0控制两者之间的影响。较大的
α
\alpha
α促使选择较简单的模型,相反较小选择较复杂的模型。
剪枝,就是当 α \alpha α确定时,选择损失函数最小的模型,即损失函数最小的子树。当