机器学习之 决策树(Decision Tree)

机器学习算法系列

  1. 机器学习 之线性回归
  2. 机器学习 之逻辑回归及python实现
  3. 机器学习项目实战 交易数据异常检测

这次,我们来看下决策树算法

决策树(Decision Tree)

决策树是一种常见的机器学习方法,它是从根节点开始,一步一步决策,直到走到叶子节点。
最终,所有的样本数据都会落到叶子节点,显然,决策过程的最终结论对应了我们所希望的判定结果 。
它即可以做分类问题,也可以做回归问题。

决策树组成

一般,一棵决策树包含一个根节点,若干个内部节点(非叶子节点)和若干个叶子节点。
1. 根节点:第一个选择点
2. 内部节点(非叶子节点):中间决策过程
3. 叶子节点:最终的决策结果

决策树的训练流程

如何从给点定的训练集中去构造一棵决策树呢?
其实,决策树的构建就是一个递归过程,从根节点开始,根据选择的特征,将原始数据集切分为几个分支,然后依次遍历每个分支,在剩下的特征集中继续选择一个特征,进行对应划分,就是这个流程,一直递归下去,直到不可再分。
那么,什么情况下会不可再分呢?有三种情况:
1. 当前节点包含的样本全属于同一类别,不需要再划分
2. 当前属性集已为空,或者 当前节点中的所有样本在当前所剩属性集中取值相同,无法再分
3. 当前节点包含的样本集为空,无法划分

具体的算法流程,这块贴下周志华大佬的《机器学习》中的一个图,大家可以看下

我们可以发现,上述算法中,最重要的一点,就是在每个节点上,选择最优的划分特征,也就说,每次在节点处划分时,我们都需要考虑,选择剩余特征集中的哪个属性进行划分,可以更好的划分数据呢?这个,也就是决策树算法的核心

决策树划分选择

通过上述,我们直到,决策树算法的核心是,如何选择最优的划分特征,我们希望随着划分的进行,我们经过每次划分后的分支节点所包含的样本尽可能的属于同一类别,也就是节点中所包含的样本纯度越来越高。从而,我们引入信息熵这个衡量标准

信息熵

信息熵表示的是随机变量不确定性的度量,熵越大,不确定性越强,也就是说纯度越低;
熵越小,不确定性越弱,纯度越高

设置样本集合D中总共有 K K 类样本,其中第 k 类样本所占的比例为 pk(k=1,2,...,K) p k ( k = 1 , 2 , . . . , K ) ,则 D D 的信息熵定义为:

E n t ( D ) = k = 1 K p k l o g 2 p k

对于一个二分类问题,我们可以画出信息熵的图像看看

上述图像中,X轴表示正样本的概率,Y轴表示对应信息熵。可以看到,当概率为0.5时,对应信息熵最大,也就是说此时不确定度最大,大于0.5,或者小于0.5时,信息熵都会减小。

信息增益

那么,通过信息熵,我们如何进行决策树划分选择的衡量呢,我们引入信息增益这个概念

我们假设特征集中有一个离散特征 a a ,它有 V 个可能的取值 { a1,a2,...,aV} { a 1 , a 2 , . . . , a V } ,
如果使用特征a来对样本 D D 进行划分,那么会产 V 个分支节点,其中第 v v 个分支节点中包含的样本集。我们记为 D v
于是,可计算出特征a对样本集D进行划分所获得的信息增益为:

Gain(D,a)=Ent(D)v=1V|Dv||D|Ent(Dv) G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V | D v | | D | E n t ( D v )

解释下上面公式,其实特征a对样本集D进行划分所获得的信息增益 即为 样本集D的信息熵 减去 经过划分后,各个分支的信息熵之和。由于每个分支节点,所包含的样本数不同,所有在计算每个分支的信息熵时,需要乘上对应权重 |Dv||D| | D v | | D | ,即样本数越多的分支节点对应的影响越大

下面,我们具体看个栗子

上那个那个是某人在某月的1到14号的打球记录,我们看下,对应特征有四个,分别为天气(outlook,我们就认为是天气吧- -),温度,湿度,是否有风。输出值为是否打球

显然,我们的样本总类 K=2 K = 2 , ,其中,正例占比 p1=914 p 1 = 9 14 ,负例占比 p1=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值