决策树:最清晰明了的分类模型

欢迎关注”生信修炼手册”!

决策树属于监督学习算法的一种,根据原始输入数据中的特征,构建一个树状模型来进行分类。比如探究早晨是否出去打网球的例子,输入数据如下

一共有14个样本,其中9个早上都出去打球,5个早上没出去打球。在原始数据中,统计了每个早上的天气,湿度,是否有风这3个条件

利用上述数据,构建好的决策树模型如下

输入数据的每一个特征作为决策树中的一个节点,根据其取值的不同,划分不同的分支,根据各个特征的取值,按照这个树状结构就可以解释一个样本的分类情况。

对于决策树模型,其解释性非常强,可以看做是一连串的if-else条件,根据该条件就可以轻松的预测一个新的样本点。决策树的输入和输出都比较直观,核心就在于构建合适的分类树。

在构建决策树的过程中,  对于一个原始的特征,根据其取值分割成不同的分支,分割的过程其实是一个取子集的过程。以outlook为例,分割前是14个样本,9个play,5个no play; 根据3种取值分割后,sunny有2个play, 3个no play, overcast有4个play, rain有3个play, 2个no paly。

为了量化特征以及分割前后的变化,引入了以下概念

1. 熵

熵是从信息论中引入的概念,用来衡量一个事物的混乱状态,熵越大,越无序,具体的计算公式如下

p代表的是概率,上述示例数据为例共14个样本,其中9个play, 4个no play, 对应的熵如下

>>> -(np.log2(9/14) * (9/14) + np.log2(5/14) * (5/14))
0.9402859586706309

这种方式计算出来的熵称之为经验熵,直接用采样数据中的频数分布作为了总体的概率分布。

和条件概率这个概念类似,也要条件熵的概念,即再特征X下数据集的熵,公式如下

比如天气这个特征有3个取值,则在该特征下数据集的条件熵为

>>> - (5/14) * (np.log2(2/5) * (2/5) + np.log2(3/5) * (3/5)) -  (5/14) * (np.log2(3/5) * (3/5) + np.log2(2/5) * (2/5))
0.6935361388961918

在取值为overcast时,出现了no play为0的情况,无法计算log值,此时直接将其熵定义为0, 所以上述公式只考虑了取值为sunny和rain的情况。

2. 信息增益

在决策树中,我们根据特征的取值将原始的特征拆分成了不同的分支,信息增益用来衡量拆分前后复杂度的变化,具体的计算公式如下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值