1W1H:决策树是什么,基本步骤

是什么

决策树,顾名思义是在模仿人类做决策时的思路。常用于决策或预测。

人在决策时,基于过往经验进行分析,就能对经验外的场景,做出判断。

这些经验,在决策树算法中就是‘特征属性’,得到的决策和判断,在算法中就称为‘类别’或者‘标签’。这个根据特征属性进行分析获得分类的过程,就是决策树模型。

比如,相亲介绍时,通过对对方的条件进行分析,比如身高、学历、工作、爱好等,是否符合自己的条件,来决定要不要和这个人见面。

其中身高、学历、工作、爱好,这4个就是算法中的 特征/属性。你要求的条件是,身高170-180,学历是研究生,工作是私企,爱好是建筑。那么属性的取值落在这些区间的,就判断为要见面,否则就不见面。见面和不见面就是决策树中的标签。

这样我们根据【(属性,属性值)+挑选规则】-就可以得到【决策结果(标签)】。

然而在实际生活中,这个挑选规则不是那么容易就能总结出来的。你可能见了很多人,有的符合你认为的条件却发现见面之后不满意,下次不希望再到这种类型的。有的不符合你的条件,但聊下来觉得很合适。也就是说你认为重要的属性,不一定真的是你所看重的。所以怎么样的挑选规则才最适合你,你自己也并不能确定。

决策树算法就是用来分析出这个‘挑选规则’。

决策树算法,是根据你以往相亲经历的数据,计算总结出你可能自己也没有发现的挑选规则。让你可以选出对决策真正有效的属性,按优先级梳理成树的样式,协助你进行判断。

算法步骤

决策树算法的目的是,根据许多个属性的值,得到一个明确的分类。也就是n个数据--》1个数据的过程。

n个数据时,你会觉得很混乱不知道怎么做出判断,衡量这种混乱程度的就称为信息熵。决策的过程就是混乱度减轻,信息熵下降的过程。

决策树算法有三个关键步骤:

  1. 选择最优属性(根节点)
  2. 生成决策树。(叶子节点的选择)
  3. 剪枝(防止过拟合)
  • 最优属性选择

决策树判断一个属性是不是当前数据集的最优属性,是依靠信息熵变化的程度来选择的。选择某个属性,依照这个属性的值,对训练集进行划分,划分后的子训练集的信息熵之和,相比未分割前的数据集信息熵,下降最多的,就是当前的最优属性。

  • 决策树生成

选取最优属性后,根据此属性的取值,对原始数据集划分,得到子数据集,再将每个子数据集当作完整数据集,迭代进行最优属性的选取,直到数据集中样本都是同一个分类标签时,决策树生成过程结束。

有时根据场景业务需求的不同,也不要求数据集分割到无法再分类的程度,而是指定迭代的次数,即决策树到第几层就不再分割了,直接把当前叶子数据集中数量最多的分类标签作为叶子节点。这是不同的停止规则。

而决策树的三种常见算法,则是根据选择最优属性时计算的信息熵函数不同划分的。ID3 是根据信息熵,C4.5是根据信息增益率。CART是采用了基尼Gini系数。

  • 剪枝

剪枝是把通过训练集得到的决策树,切掉一些叶子节点,一方面可以减少判决步骤,提高判决效率。但更主要的是,防决策树模型对训练集数据过拟合。

过拟合会导致对测试集数据判决准确率低,也就是说使用这棵决策时实际进行预测时,结果不可靠。

过拟合是指,模型太贴合训练数据集,被一些特例影响,而丧失了泛化能力。无法移植到更普通常见的数据判决中。

预防过拟合可以通过 优化数据集,或者优化决策树进行。

  • 优化数据集,就是训练数据集中的数据要包含对各个场景考虑全面,正常异常情况符合实际发生概率,尽可能达到完美覆盖。
  • 优化决策树,就是指的剪枝。

剪枝是减掉一些特征属性节点。根据剪枝的流程次序不同,分为预剪枝和后剪枝。

预剪枝就是在生成决策树的同时衡量,这个节点要不要去掉。

后剪枝是指,决策树已经生成之后,再自下而上地计算,可以去掉哪些节点。

判断一个节点是否要去掉的方法是:将减掉节点前后的两棵决策树模型,分别用在测试集数据上,对比两者的准确率。

如果剪掉后测试集数据的预测准确率明显改善,那么就减掉该节点。用该属性节点下样本数据集中出现概率最大的类别,做为叶子节点代替原本属性节点的位置。

由于决策树算法,无法兼顾属性之间的关联性。如果在决策树生成之前就进行剪枝,也有可能会导致决策树欠拟合。因而后剪枝比预剪枝的拟合性能要好一点,对应的,后剪枝因为计算点更多,需要更大时间开销。

以上是基于自己的理解,对决策树算法的描述。如有不正确的地方,敬请指正。

下面是讲解非常优秀的决策树系列文章,无论是原理还是例子都很清晰到位。放在这里供参考:

决策树(decision tree)(一)——构造决策树方法_天泽28的专栏-CSDN博客_决策树

决策树(decision tree)(二)——剪枝_天泽28的专栏-CSDN博客_决策树剪枝

决策树(decision tree)(三)——连续值处理_天泽28的专栏-CSDN博客_决策树连续变量的处理

决策树(decision tree)(四)——缺失值处理_天泽28的专栏-CSDN博客_决策树缺失值的处理

END

Guess you like

Origin blog.csdn.net/lamanchas/article/details/121707616