决策树的一些概念
决策树是一种基本的分类与回归方法。决策树学习通常包括3个步骤:特征选择、决策树的生成、剪枝。
说通俗点就是,根据一些选择条件,分出多种结果
比如说有一家人,你要判断谁爱玩电脑游戏,就可以通过年龄和性别这两个选择条件
这里有一个注意的点,这些条件的顺序不是随意的,第一个条件理论上应该是最优的,就是它的筛选能力是最强的,筛选能力是最强的,这个概念是很抽象的,所以接下来就是一些具体的生成条件的策略。
决策树的生成
选择的条件(就是上面的根据年龄,性别这些就是条件),以下称之为特征。
特征的选择准则为:信息增益,信息增益率,基尼系数。这些都是一个数值,以此我们可以决定第一个特征,第二个特征…
熵
这是一个前置知识,了解的同学可以选择直接跳过。
熵表示随机变量不确定性的度量,是度量样本集合纯度最常用的一种指标。
比如:A集合:{1,1,1,1,2} B集合:{1,2,3,4,5},B集合的纯度就比较低,也就是里面的东西比较杂,对应的熵值就比较大。
越混乱,熵值就越大,结果就越不确定
第一个特征选择,我有两种设计方案:
很显然左边的特征选择的更好,因为它的熵值更小,混乱程度为0。
熵值的计算:
pk表示的是样本中第k类样本所占比例
信息增益
信息增益就是D本身的熵与特征A给定条件下D的条件熵之差
要优先选择信息增益大的特征,它们具有更强的分类能力。由此生成决策树,称为ID3算法。
下面给定数据集我们来计算一下信息增益,给定14天中每天的天气,气温,湿度,是否有风,这一天是否打球。
依据这个数据集,特征选择有四种策略:
选择outlook为特征时的熵为:每个分支的概率*这个分支的熵
5
14
∗
2
5
l
o
g
2
2
5
+
4
14
∗
0
+
5
14
∗
2
5
l
o
g
2
2
5
=
0.693
\ \frac{5}{14} *\frac{2}{5}log_2\frac2 5+\frac{4}{14}*0+\frac{5}{14}*\frac{2}{5}log_2\frac2 5=0.693 \
145∗52log252+144∗0+145∗52log252=0.693
信息增益为0.94-0.693=0.247,使得信息增益最大的特征作为第一个特征。
信息增益率
当某个特征具有多种候选值时,信息增益容易偏大,造成误差。引入信息增益率可以校正这一问题。
信息增益率为信息增益与数据集D的熵之比,同样是优先选择信息增益率最大的,由此生成决策树,称为C4.5算法。
基尼指数
基尼指数是另一种衡量不确定性的指标,它不再需要计算熵。
G
i
n
i
(
D
)
=
∑
k
=
1
K
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
Gini(D)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2
Gini(D)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
优先选择基尼指数最小的特征,由此生成决策树,称为CART算法
决策树剪枝
当特征选择的太多,树过于庞大的时候,会出现过拟合的问题,就是上面打球的例子,我选择天气,气温,湿度,是否有风来作为特征,如果我再选择id,这个id选了是没有用的,并且会影响预测结果。
所以需要对决策树简化,砍掉多余的分支,提高泛化能力。
剪枝分为预剪枝和后剪枝:
预剪枝就是在生成决策树的过程中就剪枝,就是可以加一些限定,比如信息增益必须大于0.2,否则就剪掉,深度不能超过5,否则就剪掉,叶子树不能超过10。
后剪枝就是在树建好后才去剪,一般情形下后剪枝决策树的欠拟合风险很小,泛化能力往往优于预剪枝决策树,但时间开销通常较大。