数据分析与机器学习学习笔记--决策树

1.引言

       决策树是机器学习中十分强大的一个分类算法,决策树在进行分类时表现效果非常优秀,但是由于模型的特殊性不容易对其进行移植,在决策树中所有的数据最终都会落到叶子节点,非叶子节点仅仅用作判定条件存在,在大量比赛中获得较好名次的分类算法都是由此算法作为基础进行集成算法得到,集成算法将在下一篇中进行介绍,为了了解决策树算法我们还要学习一些其他知识,如熵接下来我将会对其进行简单介绍。

2.决策树

 

 

2.1 决策树生成过程

       决策树的分类过程可以近似理解为在数据集上多次划分区域,如下图所示,第一次划分将数据化成两部分,第二次划分时在第一次的基础上进行划分并取两者交集,紧接着进行第三次划分,依此类推直到划分完成(省略了部分图,懒得将他们合成再一起了,反正省略的几步都是一样的,理解不了的是笨蛋偷笑偷笑偷笑偷笑略略略)。从图中我们可以明显的看出通过决策树进行分类的效果十分强大,但是这也造就一个问题,训练出的模型容易过拟合,不容易将模型移植。如图就是一个决策树的生成过程,可以明显看到,对于此数据集我们使用逻辑回归不能有效的进行分类,但是在决策树中我们可以良好的区分,当然不仅仅只有决策树可以划分喽。

2.2 剪枝

       在决策树中处理过拟合的方法不再是之前的添加正则化惩罚项,我们通过“剪枝”处理过拟合情况,正如我们开篇所说,所有的数据都存储在叶子节点,当我们过拟合时决策树表现为枝叶过于繁茂,每个叶子节点只有一个数据,此时我们在训练集上可以得到100%的精确度,所以当我们剪去一些枝叶就可以避免上述情况发生,从而解决了过拟合问题。常见的剪枝策略有预剪枝和后剪枝两种。

2.2.1 预剪枝

       预剪枝通过在构建决策树是限定决策树深度,信息增益率等一系列参数来达到剪枝的目的,由于我们是在生成树之前提前设定好的,由此我们称之为预剪枝,在实际应用中我们通常采用的也是此方法。

2.2.2 后剪枝

       后剪枝与预剪枝相反,先生成决策树后再通过此公式进行计算,我们计算剪枝前的损失,在计算剪枝后的损失,当剪枝后损失小时即剪枝,否则不剪枝。公式中第一部分C(T)计算的是每个叶子中样本数与该叶子的熵或者GINI系数的成绩,第二项中T为叶子结点个数,叶子节点越多损失越大。

 

  •    

3.衡量标准

 

3.1 熵

       熵最初出现在热力学中,其在维基百科的定义如下是一种测量在动力学方面不能做功的能量总数,也就是当总体的熵增加,其做功能力也下降,熵的量度正是能量退化的指标。熵亦被用于计算一个系统中的失序现象,也就是计算该系统混乱的程度。熵是一个描述系统状态的函数,但是经常用熵的参考值和变化量进行分析比较。

       但是此处我们引用的是信息论中的熵概念,具体内容见熵(信息论),内容有些晦涩,难以理解,对此我查阅了许多资料,精简来说我们需要明白这样一个概念,熵是评定一个空间混乱程度的指标,同时也是对信息不确定性的度量,当我们获得一个概率很大的事件时熵值就很小,相反我们得到一个概率较低的事件时熵值就会很大,熵的计算公式如下:

 

  •    

3.2 ID3(信息增益)

       信息增益简单来说就是我们同过熵公式计算出最初的熵值(O),紧接着,我们选择一个特征作为下一步进行分类的判别条件,同时计算根据此特征进行分类后的熵值(A),计算O - A的差值,同时计算多个特征的O - A差值,选择其中最大的一个并将其对应的特征作为根节点,依此类推,知道生成一个我们想要的决策树。

 

  •    

3.3 C4.5(信息增益率)

       信息增益率是为了解决信息增益的一个缺点而提出的,比如说,当我们将样本id添加到特征时,对id计算熵值会发现其每个id都单独作为一个叶子节点,从而每个节点的熵都为0,进而以id为分类的熵为0,信息增益最大,根据信息增益的选取条件此时应选取id作为根节点,但是我们明显可以了解根据id进行分类对我们的模型起不到任何作用,因此,在C4.5算法中我们除以熵自身,成功的解决这一问题。

 

 

  •     

3.4 GINI系数

        GINI系数,其计算方式和信息增益类似只不过计算的方式不同,p代表第k个样本出现的概率,整体概率之和为1,当一个GINI系数越大时表明该属性对样本的熵减小能力更强,从而使得数据有不确定性变为确定性的能力越强。

 

 

  •     

4.总结

       决策树是一个非常强大的算法,尤其是在通过集成算法优化后,其分类能力十分强大,在下一篇文章中我将介绍的是3个集成算法,到时配合决策树使用集成算法效果十分显著,最后放一张生成的决策树图片吧嘿嘿。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值