机器学习(二):决策树

第一部分

使用决策树做预测需要以下过程
1,收集数据:可以使用任何方法。比如想构建一个相亲系统,我们可以从媒婆那里,或者通过参访相亲对象获取数据。根据他们考虑的因素和最终的选择结果,就可以得到一些供我们利用的数据了。
2,准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
3,分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
4,训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
5,测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。 使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。

决策树生成的伪代码(算法)

if so return 类标签
Else
      寻找划分数据集的最好特征
      划分数据集
      创建分支结点
      for 每个划分的子集(递归调用生成节点,for循环次数是由树头子集数决定的)
          调用函数creatbrach并增加返回结果到分支节点中
       return 分支节点

在这里插入图片描述

特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率,如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的标准是信息增益(information gain)或信息增益比,为了简单,本文章使用信息增益作为选择特征的标准。

香农熵

是对信息的量化度量,单位为:bit
一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多少。
对于任意一个随机变量 X(比如得冠军的球队),它的熵定义如下:

变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

如果在决策树中的话,关系到选择什么特征分类比较好(数据划分之前或者之后),熵越大,可以看似这个信息的未知空间很大(用这个特征来分类,每次使得信息变已知的量较大,可以看似“信息增量较大”),对于决策树分类结果有较大的影响

那么,什么是信息增益?
在划分数据集之前之后信息发生的变化成为信息增益,知道如何计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。

公式:
(公式姑且就这样理解,相当于1+1=2,香农他老人家总结的规律)
在这里插入图片描述
期中n是分类的数目。熵越大,随机变量的不确定性就越大。
当熵中的概率由数据估计(特别是最大似然估计)得到时,所对应的熵称为经验熵(empirical entropy)。什么叫由数据估计?比如有10个数据,一共有两个类别,A类和B类。其中有7个数据属于A类,则该A类的概率即为十分之七。其中有3个数据属于B类,则该B类的概率即为十分之三。浅显的解释就是,这概率是我们根据数据数出来的。我们定义贷款申请样本数据表中的数据为训练数据集D,则训练数据集D的经验熵为H(D),|D|表示其样本容量,及样本个数。设有K个类Ck,k = 1,2,3,···,K,|Ck|为属于类Ck的样本个数,这经验熵公式可以写为:
在这里插入图片描述
根据此公式计算经验熵H(D),分析贷款申请样本数据表中的数据。最终分类结果只有两类,即放贷和不放贷。根据表中的数据统计可知,在15个数据中,9个数据的结果为放贷,6个数据的结果为不放贷。所以数据集D的经验熵H(D)为:
在这里插入图片描述
经过计算可知,数据集D的经验熵H(D)的值为0.971。

例子:32只球队进决赛,问谁是冠军?
我们实际上可能不需要猜五次就能猜出谁是冠军,因为象巴西、德国、意大利这样的球队得冠军的可能性比日本、美国、韩国等队大的多。因此,我们第一次猜测时不需要把 32 个球队等分成两个组,而可以把少数几个最可能的球队分成一组,把其它队分成另一组。然后我们猜冠军球队是否在那几只热门队中。我们重复这样的过程,根据夺冠概率对剩下的候选球队分组,直到找到冠军队。这样,我们也许三次或四次就猜出结果。因此,当每个球队夺冠的可能性(概率)不等时,"谁世界杯冠军"的信息量的信息量比五比特少。香农指出,它的准确信息量应该是

= -(p1*log p1 + p2 * log p2 + … +p32 *log p32),

其中,p1,p2 , …,p32 分别是这 32 个球队夺冠的概率。香农把它称为"信息熵" (Entropy),一般用符号 H 表示,单位是比特。有兴趣的读者可以推算一下当 32 个球队夺冠概率相同时,对应的信息熵等于五比特。有数学基础的读者还可以证明上面公式的值不可能大于五。

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

第二部分

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

  • 从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征 (如下:通过香农熵的比较,得出选怎有没有房子作为分类特征较好)

  • 由该特征的不同取值建立子节点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。(通过第一部根节点分类后,需要重新选择剩下的分类特征:最后是有没有工作的熵较大)
    在这里插入图片描述

是一个NP-完全问题under several aspects of optimality and even for simple concepts。因此,传统决策树算法基于启发式算法,例如贪婪算法,即每个节点创建最优决策。这些算法不能产生一个全家最优的决策树。对样本和特征随机抽样可以降低整体效果偏差。

未完待续

作者:Jack-Cui
来源:CSDN
原文:https://blog.csdn.net/c406495762/article/details/76262487
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值