什么是决策树?

策树是一种监督学习算法。是机器学习算法中一种依靠对条件进行判断来进行分类(针对离散数据生成分类树)和回归(针对连续数据生成回归树)的算法。是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。

定义说完,我们来试着解释一下。

我们要做一个当下社会中女性的择偶观念调查,并据此调查结果来对未来的女性婚姻状况做预测分析。经过各省市妇联、婚姻中介及社会志愿者的参与,我们拿到了较大的真实数据集(95%真实可靠,可称为训练数据),数据其中包含了男性对象的年龄、学历、收入、房产、车辆、健康状况、婚否、婚配结果。

我们来思考一下。

这些数据中是否蕴藏了当前社会的女性择偶观念和规律?

如果是,我们怎样来挖掘和表示出这些规律?

怎样来利用这些规律?

-----------------------------

我们从手头数据中来统计一下,为了便于理解,我们选取富、帅、高、学历几个特征。我们对每条数据(比如只要帅就嫁)进行统计,得出它这一类的概率。然后我们判断根据这个特征属于哪一类的概率比较大,此处可以用50%做判断标准(你也可以制定自己的标准值)。比如我们统计计算得到60%的数据中对于外表帅的对象选择了嫁,就把这个视为正例(嫁!)然后我们从剩下的数据中,根据其他特征(比如富)继续统计,然后根据我们的判断标准值进行对比,继续划分...

最后我们能得到这样的结果:

Tree-1

或者这样的结果:

Tree-2

-----------------------------

不管哪个结果,我们认为,基本上是从我们的社会调查数据中归纳出了一组分类规则了。我们得到的这些分类树,可能都能对训练数据进行正确分类,也可能有些树不能正确分类。我们的目标是找到与训练数据矛盾最小的那棵树,同时还希望这棵树能最大程度适用于真正的生活中的数据预测分析。

对决策树的概念先理解到这里。看上面两棵树,为什么第一个先按照特征“帅”来分类,第二棵树先按照特征“富”来分类?

这两种做法(或者更多种分类顺序)有什么区别?

我们应该怎么做最合理?

-----------------------------

简要的说,我们对数据集中数据的嫁不嫁进行研究。在选择富或帅作为分类特征之前,假如整个数据的分类形式并不是很清晰,嫁不嫁参半。若选择富这个特征对数据分类后,我们发现一下子豁然开朗,情况变得很明白(数据的不确定性变小了);作为对比,如果我们先选择帅这个特征进行分类,数据分类后依然不够清晰,不确定性依然很大。我们就优先选择富这个特征进行分类。【这个叫做信息增益,它表示在条件A确定的情况下,信息的不确定性减少的程度】

那么,如果我们统计过程中发现,“富”对分类后数据的不确定性影响程度最大,然后在分类后的数据集合中,“帅”对数据的不确定性影响程度最大,依次类推,最后就能得到Tree-2这棵树。

观察这棵树,按照上面说的规则,“学历高”这个特征对数据集的信息增益不会很大。假使社会调查过程中,这个数据采集不准确,出现较多空值或编造的数据(统称为错误数据),那我们按照这个数据学习出来的决策树,就会对一些穷且帅的样本做出错误的决策...

这左下方最后一个树杈中挖掘出来的规则不准确...

考虑一种可能,我们干脆把这个树杈砍掉(剪枝),穷且帅且高,划归为正例(嫁)。得到Tree-3:

这样做,跟原来完整的树Tree-2对比,哪个更接近真实生活中的规律呢?

---------------------------------------

这个要看两种情况的损失函数(预测误差+树的复杂程度)哪个更小(剪枝算法)。如果剪枝后损失函数会变小,也就是说剪枝后对测试数据进行分类处理的准确率上升,就选择剪掉,这样经过剪枝处理后得到的Tree-3在实际应用中预测的准确程度也会比Tree-2大,适应能力也会比较好。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716G09OPM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券