决策树如何计算分裂属性?
Posted
技术标签:
【中文标题】决策树如何计算分裂属性?【英文标题】:How decision tree calculate the splitting attribute? 【发布时间】:2011-09-11 12:21:39 【问题描述】:当我们使用任何决策树算法并且我们的数据集由数值组成时。
我发现程序提供的结果会在数据集中甚至不存在的值上拆分节点
示例: 分类结果
-
attrib2
attrib2 > 3.761791861252009 : groupB
在我的数据集中,attrib2 没有像 3.76179 这样的值。 为什么会这样?
【问题讨论】:
您能否提供有关您正在使用的数据的更多信息以及精确的技术?它会帮助那些回答问题的人,并让其他对机器学习感兴趣的人感兴趣。 【参考方案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 的答案更准确、更好。 请您详细说明“选择最小化纯度测量的那个”。如何找到特定分裂点的熵?以上是关于决策树如何计算分裂属性?的主要内容,如果未能解决你的问题,请参考以下文章