决策树简介

1、什么是决策树

我们可能玩过这种游戏,一个人脑海中想一个词,然后大家向他提问,这个人只能回答是或者不是,最后逐步缩小范围,猜出这个词,这个游戏跟决策树的工作原理类似。如下面从https://blog.csdn.net/bravery_again/article/details/81104914中的例子:

别人给你介绍对象的时候,依据一些特点去判断,这个过程就形成了一棵树,如下图,哈哈:

2、决策树结构

(1)、根节点:树最顶端的结点,机器学习中理解为包含数据集中所有数据的集合。

(2)、内部节点:每个内部节点为一个判断条件,并且包含数据集中满足从根节点到该节点所有条件的数据的集合。根据内部节点的判断条件,再将相应的数据集合分到两个或者多个子节点中。

(3)、叶节点:叶节点为不再有子节点的点,叶节点为最终的类别,我们经常用决策树来处理分类问题。

3、熵和信息增益

(1)熵

熵是由大神克劳德·香农在信息论中提出来的,熵表示信息的期望值,表示变量的不确定性和复杂性,即信息熵是衡量在知道或得到一个事件结果后平均会给你带来的信息量。

一条信息中的信息量大小和不确定有关,如果事情发生的概率越大,则信息熵越低。反之则越高。

对于符号xi,其所具有的信息为:

    I(xi)=−log p(xi)    

    p(xi)表示某事件发生的概率,概率越小,则这个事件信息量越大(熵越大)。

信息熵公式如下:

对数函数概念如下,我们知道p(xi)概率值在0和1之间,由图中红线(a>1)知道log p(xi)其值是负的,而信息熵公式中加上负号就变成了正数或0,因此我们知道了信息熵中的值永远为非负的(即非负性)

 

(2)条件熵

条件熵表示在X条件下Y的信息熵,公式如下所示:

(3)信息增益

信息增益 = 信息熵 – 条件熵

 在决策树中信息增益是在数据集划分之前之后信息发生的变化。故在决策树根节点选用的判定属性条件下,在数据划分前后信息的变化越大,分类效果越好。因为实际上关于分类,我们追求的是熵越低,熵越低,则说明数据混合度减少(即纯度高,属于同一性质/分类的多),信息增益越大,则说明以此条件下划分的两边数据反差大,即划分效果好。

4、决策树创建与划分原则

创建分支的伪代码createBranch()如下图所示:

检测数据集中的每个子项是否属于同一类:

寻找划分数据集的最好特征,这里拿ID3算法举例(依照信息增益判断),首先找到能获得最大信息增益的那个特征,然后数据集被一分为二,然后用递归在左右边两个分支下继续判断,如果数据属于同一类,则不需继续往下划分。如果不属于同一类,则要重复划分数据子集,直到所有相同类型的数据在一个数据子集之中。

5、决策树的特点:

  • 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
  • 缺点:可能会产生过度匹配的问题
  • 适用数据类型:数值型和标称型

6、常用决策树算法

(1)ID3算法

ID3算法的核心是在决策树各个结点上对应"信息增益"准则选择特征,递归地构建决策树。

具体方法是:

1)从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征。

2)由该特征的不同取值建立子节点,再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止;

3)最后得到一个决策树。

(2)C4.5算法

与ID3算法相似,但是做了改进,将信息增益比作为选择特征的标准。

信息增益比:将特征A对数据集D的信息增益比gr(D,A)定义为其信息增益g(D,A),比数据集经验熵之比,即:


​什么是经验熵?

当熵中的概率由数据估计(特别是最大似然估计)得到时,所对应的熵称为经验熵(empirical entropy)。什么叫由数据估计?比如有10个数据,一共有两个类别,A类和B类。其中有7个数据属于A类,则该A类的概率即为十分之七。其中有3个数据属于B类,则该B类的概率即为十分之三。浅显的解释就是,这概率是我们根据数据数出来的,比如掷骰子,总共5次,3次正,2次反,则正反概率各为:0.6和0.4。(如果数据样本很大,则近似0.5和0.5)。

信息增益比本质上:是在信息增益的基础之上乘上一个惩罚参数(1/(H(D)))。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。

(3)CART算法

全称是分类与回归树,既可以用于回归,又可以用于分类。

回归树中,使用平方误差最小化准则来选择特征并进行划分。每一个叶子节点给出的预测值,是划分到该叶子节点的所有样本目标值的均值,这样只是在给定划分的情况下最小化了平方误差。

要确定最优化分,还需要遍历所有属性,以及其所有的取值来分别尝试划分并计算在此种划分情况下的最小平方误差,选取最小的作为此次划分的依据。由于回归树生成使用平方误差最小化准则,所以又叫做最小二乘回归树。

分类树种,使用 Gini 指数(又称基尼不纯度)最小化准则来选择特征并进行划分;

Gini 指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。另一种理解基尼指数的思路是,基尼指数是为了最小化误分类的概率。

基尼不纯度(详见https://blog.csdn.net/JJBOOM425/article/details/79997440)

从一个数据集中随机选取子项,度量其被错误的划分到其他组里的概率。(书上解释)

一个随机事件变成它的对立事件的概率(简单理解)

计算公式:(fi为某概率事件发生的概率)

基尼不纯度越小,表示纯度越高,即集合的有序程度高,分类效果越好;

基尼不纯度为0时,表示集合类别一致;

7、决策树的剪枝

决策树生成算法递归的产生决策树,直到不能继续下去为止,这样产生的树往往对训练数据的分类很准确,但对未知测试数据的分类缺没有那么精确,即会出现过拟合现象。过拟合产生的原因在于在学习时过多的考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树,解决方法是考虑决策树的复杂度,对已经生成的树进行简化。

剪枝(pruning):从已经生成的树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶子节点,从而简化分类树模型。

实现方式:极小化决策树整体的损失函数或代价函数来实现
 

8、GBDT(Gradient Boosting Decision Tree:梯度提升决策树)

GBDT又被称为MART(Multiple Additive Regression Tree:多重累加回归树))或者是GBRT(Gradient Boosting Regression Tree:梯度提升回归树),它也是一种集成学习的决策树模型,但和Random Forest随机森林有着本质的区别。且GBDT是目前竞赛中常用的机器学习算法,因为它可以适用于多种场景,且有着出众的准确率,因此被认为是机器学习领域的“屠龙刀”。

 

 

 

https://blog.csdn.net/bravery_again/article/details/81104914

https://blog.csdn.net/jiaoyangwm/article/details/79525237

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值