决策树
决策树可以简单的理解为根据特征的取值而最终分成不同的类,也可以理解为简单的if-then的规则集合(树嘛)。那么怎么样选择节点是一个很有技术的问题。为什么呢,因为如果你的中间节点选的不错是不是就能够很容易的将决策树的各个节点很容易的分清楚了(说白了,你选的树分叉的地方越有区分度、分类越多越好你一个特征就能够把特征分好多类了,证明区分度多好!!),那么问题来了怎么才算区分度好的特征,
所以引入概念:熵、条件熵、信息增益、信息增益比。这三个如此玄乎的概念其实是很容易理解的就是来衡量特征的区分度的。
先从熵开始,熵这个概念我最早是在高中物理中学到的,代表物体的稳定程度,所以同理这里的熵代表的是数据的稳定程度.熵H的公式:
H
(
X
)
=
∑
i
=
1
n
(
p
i
l
o
g
p
i
)
(1.1)
H(X)=\sum_{i=1}^n(p_{i}log p_{i})\tag{1.1}
H(X)=i=1∑n(pilogpi)(1.1)
这就是熵的公式,另一个就是条件熵的公式:
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
y
∣
X
=
x
i
)
(1.2)
H(Y|X) = \sum_{i=1}^np_{i}H(y|X=x_i)\tag{1.2}
H(Y∣X)=i=1∑npiH(y∣X=xi)(1.2)
条件熵表示特征X导致Y的熵,表示的是每个
x
i
x_i
xi的概率乘以当
X
=
x
i
X=x_i
X=xi时,对应的Y的熵
然后第三个概念就是信息增益,信息增益比较简单:就是熵减条件熵
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
(1.3)
g(D,A) = H(D) - H(D|A)\tag{1.3}
g(D,A)=H(D)−H(D∣A)(1.3)
信息增益越大的特征对Y的影响越大的,选这样的特征具有很好的区分度。
然后就是信息增益比的概念,单反增加一个在一个概念后面加上一个比字儿,就表明他在考虑权重考虑考虑公平,因此在信息增益的基础上除以
X
=
A
X=A
X=A时Y的熵
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
g_R(D,A)={g(D,A)\over{H_A(D)}}
gR(D,A)=HA(D)g(D,A)
知道了这些定义之后就可以构建决策树了,决策树构建好之后,我们需要剪枝
剪枝目的是让这个树不会出现过拟合,又有比较好的泛化能力,因此当减去一个子树之后,如果损失函数反而变小了那么这个子树就可以被减掉。
后续讲到的CART树是一种二叉决策树的算法,由原先使用熵来创建树变成使用基尼指数来创建树。