决策树之切分规则

2024/6/3 来源:不详

大家可能还记得,在构造决策树的算法中,有一个重要的步骤,那就是将给定的样本分成两个子组。这种样本的分割是一个关键步骤,它有多种用途:1.分割将问题简化为更小的问题,最终导致递归过程的终止。2.分割准则,即分割的特征和分割的值,作为决策节点的分支条件。3.分解后的子组将用作输入样本,以进一步构造左右子树。问题来了???1.那么我们如何选择分裂标准呢?2.既然可能有许多候选方案,我们如何确定哪一种方案是最好的呢?解惑时刻:在本文中,我们将带您完成上述问题,至少让您直观地了解我们是如何分割样本的。举个例子:说明:我们将继续使用我们在本章开头介绍的数据集。原始数据集包含条记录。为了说明,这里我们对每一种鸢尾花随机抽取4个样本,总共得到12个样本如下:

为了查看这些样本的分布情况,我们在下面用上面的样本绘制一个图。在水平维度上,我们绘制了4个子维度,其中每个子维度对应于样本的一个度量(例如sepal_length属性)。垂直尺寸表示相应的测量值。结果,图上的每个点都对应于一个特定样本的一个特定测量值。例如,我们将在每个子维度上精确地找到12个点。另外,我们还用不同的颜色来突出样品的种类。从决策树的定义可以看出,上述数据集的决策节点中的分支条件应该采取小于或等于比较的形式,object.attribute≤Ce.g.pedal_width≤1.5.如果我们画出分支条件在上面的图中,这将是一条水平线,将空间划分为两个部分:下部将对应的样本分配决策节点的左子节点,而上部则对应于样品分配给正确的子节点。

优秀的切分规则例子根据上面的例子,让我们尝试创建第一个分割,即创建一个决策节点。从上面的样本图中我们可以看出,样本的类别在pedal_length子维度上差别最大,即不同类别的样本之间有明显的边界。因此,我们可以在setosa和versicolor之间或者在versicolor和virginica之间进行划分,如下图所示

例如,拆分行(1)对应于分支条件{petal_length≤2.5}。通过这种拆分,我们将4个相同类别的样本(setosa)分组在左子节点中,这大大方便了我们的分类任务,即这些样本不需要进行进一步的拆分。另一方面,我们仍然在右子节点中分配了8个样本,它们属于两个不同的类别(versicolor和virginica)。同样地,我们用对应于分支条件{petal_length≤5.0}的行(2)继续分割8个样本。同样,这是一个很好的划分,可以清楚地区分这两个类别。对于split,在它的左子节点上,我们有4个virgicolor样本;而在它的右子节点,我们有4个维珍的样本。说明:通过以上两种划分,我们可以构建一个决策树(如下图所示),可以对给定的12个样本进行精确的分类。

坏的切分规则例子与上面的例子相比,我们将展示一个糟糕的分割是什么样的。

如上图所示,这次我们选择sepal_with属性进行拆分。对于第一次分割,即第(1)行,我们选择分支条件{sepal_width≤2.4}。这样,我们在左边的子节点上有一个样本,其余的11个样本分配给右边的子节点。与上面的良好分割相比,这次我们只对一个样本进行分类,而不是第一次分割的4个样本。然后对11个样本进行第二次分割。这一次,我们再次故意选择了一个不好的split,即line(2),其分支条件为{sepal_width≤4.0}。在第二次分割中,我们在右子节点上有一个示例,其余10个示例分配给左子节点。通过以上两种划分,我们还远远不能对所有样本进行分类,即在同一个节点上仍然有10个不同类别的样本。我们仍然可以继续向决策树添加更多的决策节点,如下所示。

总结一哈:通过上面的例子,你应该能更好地了解如何进行分割。给定一个具有多个数值特征的数据集,为了找到将数据集划分为两个子组的最佳分割,它可以归结为两个基本问题:

问题1.在哪个特性上拆分?问题2.要用所选特性的哪个值分割?怎么切?

要回答上面的问题,可以列举出数据集中的所有特征和所有值,从中找出最优的候选者。给定一个分裂的候选人,本质上我们需要回答以下问题:问题又来了???我们如何评价劈叉的质量?我们如何比较一个分裂和另一个分裂?我们可以用什么标准来量化分裂?期待后文吧!

转载请注明:
http://www.3g-city.net/gjyyf/7213.html
  • 上一篇文章:

  • 下一篇文章:
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有2014-2024 冀ICP备19027023号-6
    今天是: