【问题标题】:How decision tree calculate the splitting attribute?决策树如何计算分裂属性?
【发布时间】:2011-09-11 12:21:39
【问题描述】:

当我们使用任何决策树算法并且我们的数据集由数值组成时。

我发现程序提供的结果会在数据集中甚至不存在的值上拆分节点

示例:
分类结果

  1. attrib2
  2. attrib2 > 3.761791861252009 : groupB

在我的数据集中,attrib2 没有像 3.76179 这样的值。 为什么会这样?

【问题讨论】:

  • 您能否提供有关您正在使用的数据的更多信息以及精确的技术?它会帮助那些回答问题的人,并让其他对机器学习感兴趣的人感兴趣。

标签: machine-learning data-mining decision-tree


【解决方案1】:

有几种方法可以选择属性。而且并非所有人都选择数据集中的值。

一个常见的(虽然有点简单)是取平均值。 3.76179... 可能是您数据集所有属性的平均值。

例如,如果您的数据集是一维的,并且由值 -10, -9, .. -2, -1, 1, 2, ..9, 10 组成,那么一个好的分割值将是 0,即使它不在您的数据集中。

另一种可能性,尤其是在处理随机森林(几棵决策树)时,分裂值是随机选择的,概率分布以中值为中心。一些算法决定根据以均值/中值为中心的高斯进行分割,并且偏差等于数据集的标准偏差。

【讨论】:

  • 感谢您的回答清楚地说明了我关于节点拆分的许多基础知识。
  • @Zia:我的荣幸!知道它帮助了你真的很温暖! =)
【解决方案2】:

首先您可以检查如何离散数值。这些算法将数值范围分成几个区间,每个区间都有很大的信息增益。例如,您在每次拆分后执行步骤 0.1,检查其信息增益并选择最佳位置,然后继续使用恶意间隔。

【讨论】:

    【解决方案3】:

    大多数决策树构建算法(J48、C4.5、CART、ID3)的工作原理如下:

    • 对可以拆分的属性进行排序。
    • 找到所有“断点” 与它们相关的类标签 改变。
    • 考虑标签更改的分割点。选择最小化纯度测量的一种。然而,信息增益仅取决于排序,而不取决于值。

    一旦找到最佳分割点,算法就会在如何表示它上产生分歧。示例:假设您有 -4(是)、-3(是)、-3(是)、-2(否)、-1(否)。 -3 和 -2 之间的任何值都将具有相同的纯度。一些算法(C4.5)会说 val

    【讨论】:

    • 这比@Fezvez 的答案更准确、更好。
    • 请您详细说明“选择最小化纯度测量的那个”。如何找到特定分裂点的熵?
    猜你喜欢
    • 2018-09-27
    • 2018-06-15
    • 2017-05-22
    • 2018-07-03
    • 2011-05-23
    • 2014-04-15
    • 2017-08-17
    • 2012-10-12
    相关资源
    最近更新 更多