决策树之分类树与回归树

决策树(Disicion tree)

 A decision tree is a flowchart-like structure in which each internal node represents a "test" on an attribute (e.g. whether a coin flip comes up heads or tails), each branch represents the outcome of the test, and each leaf node represents a class label (decision taken after computing all attributes). The paths from root to leaf represent classification rules.

这是维基百科中的描述。决策树就是一种流程图似的结构。在这个流程图中,每个内部节点(不是叶节点) 代表一个对样本属性大的测试。每个分支代表测试的不同结果。叶节点代表分类的结果。从根到叶的过程代表分类规则。

说人话,就是如下图所示 ,当样本进入决策树的根节点时,判断样本是否符合节点的条件,符合就进入一个分支,不符合就进入另一个分支。依次下去,当达到叶节点的时候,决策树流程结束,那么样本落入那个叶节点,则叶节点的类别就是样本的类别。

决策树之分类树与回归树_第1张图片

决策树的分类

根据决策树预测输出结果的不同,决策树可以分为分类决策树树以及回归决策树

当预测结果为类别时,决策树被称为分类回归树,当预测结果为一个实数时,决策树为回归决策树。

 

  • Classification tree analysis is when the predicted outcome is the class to which the data belongs.
  • Regression tree analysis is when the predicted outcome can be considered a real number

决策树的结构已知的情况下,我们可以很轻松的对样本的类别做出判断。那么怎么确定决策树的结构?

决策树的生成

决策树的生成最重要的是:如何选择划分点?如何决定叶节点的输出值?

我们先给出决策树的基本学习方法:

决策树之分类树与回归树_第2张图片

我们可以看到算法最重要的一步是第8步如何确定最优的划分属性,也就是刚开始我们所说的决策树最重要的因素的第一个,如何选择划分点。

下面的图片给出了分类决策树的3种方法,当然不只这三种,比如xgboost中就自己定义了新的划分方式。

决策树之分类树与回归树_第3张图片

我们这里以 ID3这种方式来简述一下,其他划分算法同理。

ID3利用了信息熵的概念。信息熵是度量样本集合纯度最常用的指标。下面关于信息熵的介绍摘自周志华教授的《机器学习》。

决策树之分类树与回归树_第4张图片

就是先计算没有按照特征A划分的情况下集合的信息熵(混乱程度),再计算按特征A的所有取值(假设v个不同的取值)划分成v个不同的集合。利用(4.2)式计算,是没划分之前混乱还是划分之后混乱。

回归决策树的分类方法

 

 决策树之分类树与回归树_第5张图片

摘自李航教授的《统计学习方法》

对于回归树用平方误差和最小。简单来书就是,遍历所有特征的所有取值,找到某个特征的某个取值,使得预测误差的平方和最小。这其实并不容易,所以很多的算法采取的是贪心算法。由于目标函数是凸函数,可以采用关于梯度的算法,以此来提高效率,当然这也损失了精确度。

这样我们就解决了如何划分的问题,下面解决叶节点得分的问题。

叶节点得分的问题有多种方式。在分类树中,可以选取决策树叶节点的样本中所有种类中,样本最多的一个种类作为叶节点的得分。对于回归树,可以把叶节点所有样本的标签的平均值作为叶节点的得分。诸如这种算法还是有很多的方式可以选择。

决策树的剪枝

剪枝是决策树应对过拟合风险的主要手段。

决策树的剪枝基本策略有:预剪枝,后剪枝

预剪枝:在决策树生成的过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止当前结点的划分。

后剪枝:在决策树生成后,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶节点能带来决策树泛化性能的提升,则将该子树替换为叶节点。

决策树之分类树与回归树_第6张图片

摘自周志华教授《机器学习》。

 

 

你可能感兴趣的:(决策树之分类树与回归树)